Por padrão quando você queria exibir apenas um resumo do post em vez do post inteiro na home, você optava por usar o more ou usar a tag the_excerpt no lugar de the_content.
Não sei se fui bem claro. Mas enfim, a the_content quando usada exibe o conteúdo do post por inteiro (se não usado o more), já o the_excerpt exibe só um resumo do post, que por padrão, chama os últimos 55 carácteres.
Se mesmo assim não entendeu, abra o index.php do seu tema e com certeza você vai encontrar uma dessas duas tags lá. Na verdade pra quem já é intimo dos temas do WordPress é mais fácil de entender.
Focando no assunto… Como já disse, por padrão, o Wordpress exibe só os últimos 55 caracteres do post quando usado o the_excerpt. Mas e se você quisesse mais ou menos caracteres? Bom, há uma solução, na verdade, TRÊS e nenhuma delas usando plugins, ou seja, você só vai usar o que o WordPress oferece…
Abra o arquivo formating.php na pasta wp-includes/. Lá exatamente na linha 810, você irá encontrar um código como esse:
function wp_trim_excerpt($text) { // Fakes an excerpt if needed
global $post;
if ( '' == $text ) {
$text = get_the_content('');
$text = apply_filters('the_content', $text);
$text = str_replace(']]>;', ']]>;', $text);
$text = strip_tags($text);
$excerpt_length = 55;
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, '...');
$text = implode(' ', $words);
}
}
return $text;
}
É esse o código responsável pelas funções do the_excerpt. Agora observem a linha:
$excerpt_length = 55;
Precisa falar mais alguma coisa? Apenas edite o número para que ele chame a quantidade de caracteres que você quer que seja exibida, depois logicamente, faça o upload de volta pro wp-includes e se necessário, substituindo o arquivo original. Daí sempre que você usar o the_excerpt ele vai gerar só a quantidade de caracteres que você configurou.
Porém há um ponto negativo: Tenha um backup desse arquivo que você editou, pois sempre que você atualizar o WordPress você terá que re-enviar o mesmo.
Caso você não saiba, na mesma tela onde você escreve seus posts, há um campo responsável por criar um resumo do post personalizado.
Não encontrou? O campo fica meio escondido como uma aba em abaixo dos "uploads".
Para usá-lo é só escrever o que você quiser no campo, publique o post e pronto. Daí, em vez de exibir os tais 55 caracteres, ele exibe o que você escreveu no campo. O único problema mesmo é que da um pouquinho de trabalho, já que não é automático. Portanto você terá que criar um desses pra cada post.
O Ezequiel da comunidade WordPress Brasil no Orkut, postou uma dica de como limitar a quantidade de caracteres. Só que nessa dica é criada uma nova tag, ou seja, não se usa nem the_excerpt e nem the_content.
Não sei explicar muito bem o que cada código faz, já que não sou nenhum expert em php, mas vou fazer um "copy-paste" de como ele fez (com a devida autorização)!
Coloque o seguinte código no header.php do tema, na primeira linha de preferência.
global $post;
if($resume_link)
$resume = '<a title="'.$resume.'" href="'.get_permalink().'">'.$resume.'</a>';
$text = get_the_content('');
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
$text = strip_tags($text);
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, $resume);
$text = implode(' ', $words);
}
echo $text;
} ?>
Simples, em vez de usar the_excerpt ou more, você usará uma nova tag :
Personalizando:
Palavras: A quantidade de palavras que será exibida.
more: É o que vai ser exibido no fim do resumo, no caso é Continue Lendo, mas claro que poderá ser editado.
link: coloque como FALSE se não quiser que "Continue lendo" aponte para um link pro resto do post e TRUE para o contrário.
Exemplo:
O código acima vai exibir as últimas 25 palavras do post, terminará o resumo com um "(…)" que não apontará para nenhum link.
E é isso, espero que tenham gostado!
Nossa, adorei! Primeiro blog sobre wp que vejo que mostra tutos assim! Vlw e pode ter certeza que vou ser um leitor fiel!
Carlos, meus parabéns, pelo que vejo você criou o blog para dicas sobre Wordpress que todos estavam a procura, espero que agora eu consiga desenvolver um tema bem legal para meu blog.
Até mais e boa sorte.
[]'s!
Olá Mr.,
Belo post!
Aqui aconteceu um imprevisto, vê se pode me ajudar: apesar de funcionar como descrito, limitando as palavras, criando link, etc… sumiram as imagens dos posts, e também os vídeos.
Tem como resolver?
Obrigado!
Eduardo,
Por padrão do próprio WordPress a tag the_excerpt mostra somente o texto do post, mais nada, sem links, sem imagens, só o resumdo do post mesmo.
Se você quiser que as imagens sejam exidas terá que adotar a dica 2, usando o Optional Excerpt. Tudo que você colocar neste campo será interpretado como resumo, incluindo a exibição das imagens.
[...] Alves: Alternativa para indexação da Home no Wordpress e outro de Carlos Henrique sobre como customizar a função the_excerpt. Apesar de úteis, ainda não traziam exatamente o que procurava. Minha motivação principal era [...]
[...] <?php the_permalink();?> - Exibe a url do post <?php the_title();?> - Exibe o título do post <?php the_content('…');?> - Exibe o conteúdo(texto) do post completo <?php the_excerpt();?> - Exibe o conteúdo do post resumidamente, limitando-se a 55 caracteres. Veja como personalizar esta tag. [...]
Olá Mister, acabei achando seu site pelo Google, e estou procurando uma forma de resumir os posts da index do meu Blog WordPress, todas as opções que você citou acima funcionaram feitamente, porém até mais do que necessário, por exemplo na index os posts ficam OK resumidos, mas ao clicar para ver o POST completo, ele ainda continuar resumido.
Estou fazendo algo errado ?? Tem alguma coisa para setar no proprio admin do WP ??
Olá Rodrigo!
O seu tema não deve ter o arquivo single.php, pois é este arquivo responsável por ser o "template" da pagina dos posts.
Solução: Se você entende o seu tema, crie um arquivo single.php para ele baseando-se no arquivo index.php e usando o the_content para exibir o contexto por completo. [Ps: Acesse meu portfólio, eu ofereço este serviço- personalização de temas ]
OU
Adquira um novo tema que contenha este arquivo.
Olá Carlos Henrique, grato pela sua ajuda, resolvi o problema com o arquivo single.php
Como postei um pouco antes, o problema foi resolvido com as páginas de Posts, e com a Index… porém as páginas que são "estáticas", tipo Sobre, Informações, Fale Conosco, contuam sendo resumidas como se estivessem listando posts, quando na verdade ela tem um conteudo "estatico".
Resolvido com uma busva no Google…. hehehehehe
Meu template não tinha o arquivo page.php também… mas criei o mesmo e resolvi o problema.
acho que
umas aspas depois do parênteses ajudaria muito
pq aqui, sem as aspas não funcionou
abraços!
Oi, como faço para deixar os 2 primeiros posts "inteiros" e o restante resumido e mostrando imagens também?
Carinha, muito bacana esse seu mini-tutorial. Para quem está começando é uma mão na roda.
Mas ele tem um pequeno erro: O excerpt não limita o post à 55 caracteres, e sim a 55 palavras. Para não deixar dúvidas, clique aqui.