Suporte » Temas » Como exibir texto apenas nos posts pertencentes a uma categoria específica

  • Resolvido ialima7

    (@ialima7)


    Após tentar frustradamente sozinho, recorro ao fórum para saber como resolver isso.

    Gostaria que nos posts de uma determinada categoria aparecesse um texto padrão logo após o content. Nesta categoria publicarei sempre posts retirados de um mesmo site, então quero exibir um aviso informando de onde ele foi retirado, pois ninguém merece ficar dando ctrl+c, ctrl+v em todo post que for publicar.

    Algo como:
    ‘se post for da categoria tal, exibir mensagem’

Visualizando 7 respostas - 1 até 7 (de um total de 7)
  • Acho que você procura por Metabox.

    Artigo: Adicionando meta boxes ao WordPress

    Criador do tópico ialima7

    (@ialima7)

    Olá @belloli, acho que não é bem isso. O que quero é algo simples, umas três linhas de código, sei que não deve ser difícil, apenas meu conhecimento que é limitado, e todas minhas tentativas foram frustradas, rs.

    Deixando mais claro: quando falo “exibir” não é pensando em uma mensagem que ‘apareça’ ao abrir o post, mas como se fosse um rodapé para posts de uma mesma categoria.

    Algo que ficasse no single, que verificasse if o post for da categoria 9, então colocar ‘isso’ após o the_content, ficando como se fosse um rodapé predefinido para todos os posts da mesma categoria.

    Então, com Shortcodes resolve.
    Fiz rapidamente aqui, melhore e utilize.

    Em functions.php do seu theme

    <?php
    function mensagem1() {
        return 'Mensagem 1';
    }
    add_shortcode('msg1', 'mensagem1');
    
    function mensagem2() {
        return 'Mensagem 2';
    }
    add_shortcode('msg2', 'mensagem2');
    ?>

    E no loop:

    <?php
    if ( in_category('1') ) { // Pode ser ID ou SLUG
    	echo do_shortcode("[msg1]");
    } elseif( in_category('teste-de-categoria') ){
    	echo do_shortcode("[msg2]");
    }
    ?>

    Lembrando que no return, você pode utilizar html.
    Pode-se utilizar algum plugin pra criar os shortcodes, depois é só inserir no loop.

    Criador do tópico ialima7

    (@ialima7)

    Valeu @belloli, vou dar uma olhada amanhã e dou retorno, estudando pra prova aqui… Sofrimento.

    Criador do tópico ialima7

    (@ialima7)

    Oi @belloli!

    Mais uma vez agradecendo pela ajuda, não usei exatamente a ideia, mas me ajudou demais. Digo como coloquei:
    Como disse desde antes, sabia que era simples, mas não sabia como fazer. Ao invés de colocar o shortcode no functions.php, coloquei a mensagem direto no echo do in_category, já no single.php.
    Antes de pedir ajuda aqui não estava acertando pois estava tentando colocar a mensagem dentro do local onde ficam os parâmetros do in_category (#leigo). Mas sua ajuda me abriu os olhos, rs.

    Ficou assim:
    No single.php

    <?php
    if ( in_category( array( '9', '10', '11' ) )) {
    	echo 'mensagem';
    }
    ?>

    O array foi para que a mensagem aparecesse em mais de uma categoria, nas especificadas. Me pareceu o correto.

    Obrigado pela ajuda!

    A ideia de utilizar o shortcode é para facilitar a edição futuramente utilizando plugin, mas cada caso é um caso.

    Por favor, marque como resolvido.

    Feliz em ajudar.

    Criador do tópico ialima7

    (@ialima7)

    Opa, claro, só estava esperando você responder.

    Muito obrigado.

Visualizando 7 respostas - 1 até 7 (de um total de 7)
  • O tópico ‘Como exibir texto apenas nos posts pertencentes a uma categoria específica’ está fechado para novas respostas.