Suporte » Desenvolvendo com WordPress » Alternar entre template de category-pai.php e category-filho.php

  • Prezados amigos,

    Trabalho com wordpress a muito tempo, mas saco muito pouco de programação, faço implementações e programação bem simples, e meu cliente me pediu que fizesse um site, contem uma categorias e que nessa categoria tenha várias categorias-filhas.

    então criei a categoria-pai “automação”, e a categoria-filha “botoes”;

    porém, na página inicial, tenho a opcão de clicar nessa categoria-pai “automação” que ao clicada, aparece uma lista de suas categoria-filhas, na qual utilizo o arquivo category.php.

    Mas ao clicar na categoria filha “Botões”, quero que esta tenha uma apresentação dos produtos, e não posso usar este category.php. Gostaria que ficasse dinamico para que não tenha que ao cadastrar uma noma categoria não tenha que criar um arquivo especifíco como p: ex “category-botoes.php”.

    Com isso criei dois arquivos (Não sei se estou pensando certo), mas são category-pai.php e category-filho.php; E no category coloquei o seguinte código:

    <?php if ( is_category(cat_is_ancestor == 'true') ) : ?>
    <?php include (TEMPLATEPATH . '/category-filho.php'); ?>
    <?php else:?>
    <?php include (TEMPLATEPATH . '/category-pai.php'); ?>
    <?php endif; ?>

    Não sei se me fiz entendido.
    E como não programo muito bem, gostaria de uma ajuda, se estou pensando certo, e principalmente se a programação está certa.

    Obrigado pela atenção de todos.

Visualizando 6 respostas - 1 até 6 (de um total de 6)
  • Eduardo

    (@eduardozulian)

    Eu acho que o caminho pode ir por aí, mas a função é a cat_is_ancestor_of() e é ela que você deverá usar.

    <?php
    /*
    A pergunta da função é: A categoria de ID 5 é filha da variável $cat?
    A variável $cat já está presente quando você entra no category.php
    */
    if ( cat_is_ancestor_of( 5, $cat ) ) :
        // Mostra um template de categoria
    else :
        // Mostra o outro template
    endif;
    ?>
    Criador do tópico atmmoreira

    (@atmmoreira)

    uma pergunta Eduardo:

    Eu poderia escrever o código assim:

    <?php

    if(cat_isancestor_of(get_cat_id(), $cat)):

    .
    .
    .

    Eduardo

    (@eduardozulian)

    Na verdade, você só precisa saber se a categoria sendo mostrada é filha de alguma ou não, certo? Não importa filha de quem, desde que seja uma filha, tou correto? Se for isso, o ideal seria criar um código parecido com este aqui, que apenas verifica pra você se a categoria possui pais ou não!

    Criador do tópico atmmoreira

    (@atmmoreira)

    não funcionou, meu amigo…

    Criador do tópico atmmoreira

    (@atmmoreira)

    fiz assim o código:

    <?php
    $children = get_categories(array('child_of' => id,'hide_empty' => 0));
    if (count($children) > 1){?>
    <?php include (TEMPLATEPATH . '/category-filho.php'); ?>
    <?php } else {?>
    <?php include (TEMPLATEPATH . '/category-pai.php'); ?>
    <?php}?>
    <?php endif; ?>

    Não funciona de jeito nenhum

    Eduardo

    (@eduardozulian)

    Aquele seu id ali deveria ser a variável $cat, não? Sendo assim, a linha ficaria desta maneira:

    $children = get_categories(array('child_of' => $cat,'hide_empty' => 0));
Visualizando 6 respostas - 1 até 6 (de um total de 6)
  • O tópico ‘Alternar entre template de category-pai.php e category-filho.php’ está fechado para novas respostas.