Estilize o texto antes! - mais-- em single.php

4

Gostaria de estilizar diferentemente o conteúdo antes do link, mas em single.php.

Para ser mais específico, todas as minhas postagens na página inicial só têm um resumo, e o restante do texto é cortado graças ao uso da tag more. Então, quando clico em "leia mais", vejo o post completo, começando com o resumo que vimos anteriormente na página inicial. Gostaria de diferenciar este resumo do resto do texto, adicionando-o um pouco ousado, por exemplo, para mostrar ao usuário o que ele já leu.

Infelizmente, acho que isso não é possível. É?

    
por koskoz 13.07.2011 / 11:10

2 respostas

2

usando: enlace

e o parâmetro $ strip_teaser: enlace

em single.php, substitua <?php the_content(); ?> por:

<?php if( strpos(get_the_content(), '<span id="more-') ) : ?>
  <div class="before-more">
  <?php global $more; $more=0; the_content(''); $more=1; ?>
  </div>
<?php endif; ?>     
<?php the_content('', true); ?>
    
por Michael 13.07.2011 / 12:01
2

Eu resolvi isso criando duas funções para dividir the_content() em uma função antes e depois:

class MyClass
{
    /**
     * Echo the content before the <!--more--> tag
     */
    public static function getContentBeforeMore()
    {
        global $more;
        $more = false;
        the_content(false);
        $more = true;
    }

    /**
     * Echo the content after the <!--more--> tag
     */
    public static function getContentAfterMore($removeMoreTag = true)
    {
        $content = get_the_content(null, true);
        $content = apply_filters( 'the_content', $content );
        $content = str_replace( ']]>', ']]&gt;', $content );
        // Remove the empty paragraph with the <span id="more-.."></span>-tag:
        if($removeMoreTag)
        {
            $content = preg_replace('/<p><span id="more-\d+"><\/span><\/p>/m', '', $content);
        }
        echo $content;
    }
}

Em um modelo, ele pode ser usado assim:

<p class="intro"><?php MyClass::getContentBeforeMore(); ?></p>

... some other styling, like date or something ...

<?php MyClass::getContentAfterMore(); ?>
    
por Giel Berkers 31.07.2014 / 16:44