• Resolvido anderson631

    (@anderson631)


    Boa tarde a todos,

    Estou criando meu primeiro layout no WordPress.

    E neste layout, estou fazendo um loop com 5 posts. Ou seja, quero que seja impresso 5 posts da categoria “Destaque”.

    Então fiz um loop assim:

    <?php
    	$destaque = new WP_Query("category_name=Destaque&showposts=5");
    
    	if($destaque->have_posts()) :
    		while($destaque->have_posts()) : $destaque->the_post();
    ?>

    Isso acima é o loop, então para imprimir o resultado do loop, coloquei da seguinte maneira:

    [...]
    <div class="resumo"><?php the_excerpt(); ?></div>
    [...]

    O problema é que, como o post é muito grande, o próprio WordPress limita 25 palavras, como se fosse um resumo. Mais no meu caso, eu quero diminuir essas 25 palavras, então usei a seguinte função dentro do loop:

    <?php
    
    	$destaque = new WP_Query("category_name=Destaque&showposts=5");
    
    	function new_excerpt_length($length) { return 20; } //Número de palavras do resumo do texto do post
    		add_filter('excerpt_length', 'new_excerpt_length');
    
    	if($destaque->have_posts()) :
    		while($destaque->have_posts()) : $destaque->the_post();
    
    ?>

    Como é um loop, é impresso 5 posts. No 1° post, funciona normalmente, o resumo fica com 20 palavras.

    O problema é que do 2° post em diante, fica com 25 palavras (o padrão do WordPress). Ou seja, a função só está funcionando no 1° item do loop =\

    Será q deu pra entender minha dúvida? rsrsrs

    Obrigado,
    Anderson Ferreira

Visualizando 7 respostas - 1 até 7 (de um total de 7)
  • renato_s

    (@renato_s)

    Coloca a função no functions.php, e não no loop. Pode ser em qualquer lugar lá.

    Criador do tópico anderson631

    (@anderson631)

    Coloquei a função dentro do arquivo: wp-includes\functions.php, mas não funciona :'(

    Inseri no arquivo functions.php:

    function new_excerpt_length($length) { return 20; }
    	add_filter('excerpt_length', 'new_excerpt_length');

    Mas não está funcionando :S

    Aparece o erro:

    Fatal error: Call to undefined function add_filter() in C:\Program Files\EasyPHP\www\zoom\wp-includes\functions.php on line 3643

    renato_s

    (@renato_s)

    Não, tem que ser no arquivo functions.php do seu tema. Se não existir, crie um e coloque apenas a função (dentro de <?php ?>)

    Criador do tópico anderson631

    (@anderson631)

    Funcionou perfeitamente. MUITO obrigado 🙂

    Só pra finalizar minha dúvida:

    Esse layout q eu estou fazendo não é pra mim, é pra outra pessoa. Então vamos dizer que o espertão que for adicionar um post ao site pelo WP, e no campo “resumo” do post, ele coloca um texto inteiro.

    Esta função está apenas limitando 20 palavras só no campo do conteúdo do post. Como fazer pra limitar também o campo do resumo, caso o espertão coloque um texto inteiro nele.

    Criador do tópico anderson631

    (@anderson631)

    Boom galera … A minha dúvida ai de cima é besteira, detalhe. Mais to precisando de uma ajuda importante!

    Tipo, coloqei a função pra limitar 20 palavras do texto do post, dentro do arqvo “functions.php”. O problema é que ele limita em 20 palavras TODOS os resumos da página.

    Como minha página tem 10 resumos, um deles é o resumo principal. Então eu queria que SÓ esse resumo principal tivesse 30 palavras no resumo, e os outros resumos continuassem normal… Com 20 palavras.

    Como fazer isso? Por favor, AJUDA *-*

    Obrigado,
    Anderson Ferreira

    Tenta assim:

    function new_excerpt_length($length) {
    global $npost;
    If ($npost==1)
    return 30;
    else
    return 20; }
    add_filter('excerpt_length', 'new_excerpt_length');

    Antes de iniciar o loop, coloque:
    $npost=0;

    Dentro do loop, antes de chamar o the_excerpt, coloca assim:
    $npost++;

    Depois avisa aqui se deu certo.

    Criador do tópico anderson631

    (@anderson631)

    Funcionou sim .. Perfeitamente 😀

    MUITO Obrigado (novamente). Rsrs

Visualizando 7 respostas - 1 até 7 (de um total de 7)
  • O tópico ‘Dúvida sobre número de palavras em um resumo no WordPress’ está fechado para novas respostas.