Suporte » Desenvolvendo com WordPress » Esconder categoria

  • Resolvido olaedu

    (@olaedu)


    Dúvida cabeluda.

    Tenho um post associado as seguintes categorias:
    Decoração (categoria mãe) > mobiliário (categoria filha)
    e, além dessas 2 categorias, o post também está associado à categoria “Destaque”, que também é categoria mãe.

    O problema:
    Gostaria de exibir somente o nome da categoria mãe “Decoração”, ou seja, não quero exibir o nome da categoria “Destaque” e nem das categorias filhas, no caso é “mobiliário”.

    Para isso consegui o seguinte código:
    <?php $parentscategory =””;
    foreach((get_the_category()) as $category) {
    if ($category->category_parent == 0) {
    $parentscategory .= ‘ cat_ID) . ‘” title=”‘ . $category->name . ‘”>’ . $category->name . ‘, ‘;
    }
    }
    echo substr($parentscategory,0,-2); ?>

    Porém, esse código mostra as 2 categorias mãe. 🙁
    Como eu faça a categoria “Destaque” não ser exibida ????

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • oi olaedu,

    Isso que vc está fazendo é em qual arquivo do template? single, archive, index? Talvez valha a pena dar uma planejada em quais arquivos vai precisar e se, de repente, não é o caso de fazer um category-X.php para um template específico dessa categoria que vc quer mostrar. E aí vc põe o título na mão mesemo.

    Outro jeito, se a regra for sempre essa, é vc dar um if (in_category(X)), sendo que X é o id da categoria Decoração. Aí se retornar verdadeiro (o post está na categoria Decoração) vc imprime na tela “Decoração”, e ignora as outras categorias.

    Mas se a regra for inversa, o que vc quer é sempre esconder a categoria Destaques, vc pode adicionar uma condição no seu if, que ficaria assim:

    if ($category->category_parent == 0 && $category->cat_ID != IdDestaques) {

    O chato é q vc vai ter q botar o ID da categoria destaques na mão aí.

    abs

    Eduardo

    (@eduardozulian)

    Acho que essa primeira dica do Leo já funciona pra você.

    Sobre o segundo código (se for o caso usa-lo), não há a necessidade de colocar o ID na mão. Dá pra usar a função get_cat_ID():

    if ( $category->category_parent == 0 && $category->cat_ID != get_cat_ID( 'Destaques' ) ) {
        // Faça o que precisar aqui
    }

    O único problema é ela se referenciar pelo nome e não pelo slug, mas ao menos ela vita que você decore o ID, o que realmente é chato.

    Até!

    Criador do tópico olaedu

    (@olaedu)

    CONSEGUIMOS!!!
    Eis o código completo para alguém que precisar…

    <?php $parentscategory ="";
    foreach((get_the_category()) as $category) {
    if ( $category->category_parent == 0 && $category->cat_ID != 456 ) {
    $parentscategory .= ' <a href="' . get_category_link($category->cat_ID) . '" title="' . $category->name . '">' . $category->name . '</a>, ';
    										}
    									}
    echo substr($parentscategory,0,-2); ?>

    Sendo cat_ID != 456, 456 é a minha categoria destaque.

    Muito obrigado! 🙂

    Olá,
    Por favor!!!!!
    Onde vcs colocaram esse código?
    desde já, grato!!!

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • O tópico ‘Esconder categoria’ está fechado para novas respostas.