← WordPress

Limitar the_excerpt

Lida 2873 vezes

Offline

João Godinho 
Membro
Mensagens 1755 Gostos 2
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Preciso de limitar o excerto dos posts no Wordpress, tanto faz limitar por nr. de caracteres como por nr. de palavras.
Encontrei várias soluções na internet, mas todas com vários problemas. Um deles era eu queria limitar até 400 palavras e o wordpress limitava (parece-me que automaticamente) até às 365.

Quem puder ajudar, agradecia ;)
Offline

Luís Salvador 
Membro
Mensagens 2068 Gostos 37
Feedback +4

Troféus totais: 28
Trófeus: (Ver todos)
Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

http://codex.wordpress.org/Function_Reference/the_excerpt

Basta adicionares umas linhas adicionais no functions.php
Offline

João Godinho 
Membro
Mensagens 1755 Gostos 2
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Já tinha visto isso, esqueci-me de uma coisa. Não quero um limite para todos, preciso de pelo menos 2 limites diferentes. Desculpem
Offline

Luís Salvador 
Membro
Mensagens 2068 Gostos 37
Feedback +4

Troféus totais: 28
Trófeus: (Ver todos)
Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Eu para limitar os posts (não excertos) uso isto no functions.php do meu theme:

Código: [Seleccione]
########## LIMIT POST ##########
function the_content_limit($max_char, $more_link_text = '', $stripteaser = 0, $more_file = '') {
    $content = get_the_content($more_link_text, $stripteaser, $more_file);
    $content = apply_filters('the_content', $content);
    $content = str_replace(']]>', ']]>', $content);
    $content = strip_tags($content);

   if (strlen($_GET['p']) > 0) {
      echo "";
      echo $content;
      echo "";
   }
   else if ((strlen($content)>$max_char) && ($espacio = strpos($content, " ", $max_char ))) {
        $content = substr($content, 0, $espacio);
        $content = $content;
        echo "";
        echo $content;
        echo "...";
        echo "";
   }
   else {
      echo "";
      echo $content;
      echo "";
   }
}

E depois isto nos outros ficheiros:

Código: [Seleccione]
<?php the_content_limit('150'); ?>

Consegues replicar e tornar isso em 2 ? tipo the_content_limit1 e the_content_limit2
Offline

Diogo Pinto 
Administrador
Mensagens 4400 Gostos 371
Feedback +4

Troféus totais: 37
Trófeus: (Ver todos)
Avatar Search Level 6 Linux User Mobile User Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Olá João, como vais diferenciar esse limite? Suponho que seja para categorias, ou custom posts... Pegando no código do Luís, no caso de categorias:

Código: [Seleccione]
<?php
if ( in_category('batatas')) {
the_content_limit('400');
}elseif( 
in_category('morangos')) {
the_content_limit('500');
}
?>

Substitui o "batatas" pelo slug das categorias e adiciona um else se precisares.

Esta solução é suficiente?

Abraço!
Offline

Luís Salvador 
Membro
Mensagens 2068 Gostos 37
Feedback +4

Troféus totais: 28
Trófeus: (Ver todos)
Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Nem me lembrei dessa solução Diogo, de facto o João pode limitar assim. De facto isso deve fazer o que ele pretende.
Offline

João Godinho 
Membro
Mensagens 1755 Gostos 2
Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

É tudo na página inicial, só que subdivide-se em blocos com diferentes tamanhos dos excertos. Acho que a solução do Luís é boa, basta usar the_content em vez de excerpt. A única diferença é que no the_excerpt não aparecem imagens e etc. E no the_content pode aparecer, vou testar.

Obrigado aos dois, já digo alguma coisa ;)
Offline

Luís Salvador 
Membro
Mensagens 2068 Gostos 37
Feedback +4

Troféus totais: 28
Trófeus: (Ver todos)
Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

É tudo na página inicial, só que subdivide-se em blocos com diferentes tamanhos dos excertos. Acho que a solução do Luís é boa, basta usar the_content em vez de excerpt. A única diferença é que no the_excerpt não aparecem imagens e etc. E no the_content pode aparecer, vou testar.

Obrigado aos dois, já digo alguma coisa ;)

Nesse que te dei não aparecem as imagens/vídeos/links/formatações, etc... Aparece só o texto simples e limpo.