Leia mais não aparece quando eu escrevo meu próprio excerto

2

No meu blog em todos os meus loops principais, ele está configurado para mostrar o excerpt em vez do content

Se eu fizer uma postagem mais longa e deixar a caixa de texto excerpt vazia, o wordpress fará seu próprio trecho da minha postagem e mostrará o [...] ou um link personalizado no final. Isso é ótimo, no entanto, se eu inserir meu próprio trecho na caixa de texto do trecho, ele mostrará esse texto, mas não mostrará a parte da leitura adicionada a ele.

Alguém sabe como posso sempre mostrar uma leitura mais?

    
por JasonDavis 04.01.2012 / 01:21

4 respostas

3

Talvez uma declaração condicional como a seguinte funcione. A lógica é: "Se a postagem tiver um trecho explícito, inclua um link para ler mais. Caso contrário, use o comportamento de trecho padrão".

if($post->post_excerpt) {
    the_excerpt();
    echo '<a href="'.get_permalink().'">Read More</a>';
} else {
    the_excerpt();
}

Você pode usar isso em combinação com a sugestão de Gavin para unificar a aparência do link "Leia mais".

    
por 5t3ph 05.01.2012 / 17:26
3

Eu sei que essa pergunta foi há mais de 2 anos, mas acho que aqui está uma resposta mais correta.

function new_excerpt_more($more) {
    global $post;
    return $more . '<a href="'. get_permalink( $post->ID ). '" class="readmore">more &raquo;</a>';
}
add_filter('the_excerpt', 'new_excerpt_more');

Mesmo que o seu trecho esteja preenchido, o link "readmore" será impresso após o parágrafo do trecho.

    
por Kamil 26.08.2014 / 11:03
1

Adicione isso às funções do seu tema.php:

function new_excerpt_more($more) {
       global $post;
    return '<a href="'. get_permalink($post->ID) . '">Read the Rest...</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');

Mais informações: Faça o link "leia mais" para a postagem

Boa sorte!

    
por GavinR 04.01.2012 / 03:39
1

Eu sei que está atrasado três anos, mas encontrei uma solução melhor que pode até me ajudar no futuro:

Primeiro, limpe o trecho padrão mais para remover as elipses padrão [...] :

function clean_excerpt_more() {
    return '';
}

add_filter( 'excerpt_more', 'clean_excerpt_more' );

Em seguida, obtemos o trecho e adicionamos o link inline , no mesmo parágrafo do trecho! (A maioria das soluções acima mostra o link fora do parágrafo, em uma nova linha).

function custom_the_excerpt( $excerpt ) {
    global $post;

    if( $post->post_excerpt ) {
        // If the post has manual excerpt,
        // it already has a point to end
        // the paragraph, so we don't want
        // the point + the ellipsis: ....
        // Clean it!
        $ellipsis = '';
    } else {
        $ellipsis = '...';
    }

    // Save the link in a variable
    $link = $ellipsis . ' <a class="moretag" href="' . get_permalink( get_the_ID() ) . '">' . __( 'Read more &raquo;', 'starion' ) . '</a>';

    // Concatenate the link to the excerpt
    return $excerpt . $link;

    }

add_filter( 'get_the_excerpt', 'custom_the_excerpt' );

Editar: uma nota final. Você não precisa modificar mais nada. Use the_excerpt(); normalmente para exibir o trecho com o link.

Espero que ajude alguém:)

    
por Gerard 08.04.2015 / 13:42

Tags