Ir para conteúdo
Chirlison

Exibir nome da taxonomia filha

Recommended Posts

Olá a todos!
Estou precisando da ajuda dos colegas para resolver a seguinte situação.

Instalei o Wordpress e criei um Custom Post Type chamado: produtos

Crie uma Custom Taxonomy(taxonomia) para o Custom Post Type produtos chamada: categorias
Criei o arquivo taxonomy-categorias.php para exibir os posts referentes ao produto e sua categoria

 

O que estou precisando fazer e não estou conseguindo?

Preciso pegar o nome da categoria escolhida na página na qual estou, mas o problema acontece quando é uma categoria filha, então me retorna dois nomes, o nome da categoria pai e o nome da categoria filha.

 

Link da imagem da página:

https://www.imagemhost.com.br/image/PQTNI

 

Desde já, agradeço a todos que tentarem me ajudar!

 

Aqui o menu onde eu gostaria de fazer o filtro de acordo com a categoria escolhida
A variável $slug_tax é que guarda o nome da categoria 
<div class="row">
            <div class="col-lg-6">
                <h3 class="mb-3 h6 text-uppercase text-black d-block">Filtar por Preço</h3>
                <div id="slider-range" class="border-primary"></div>
                <input type="text" name="text" id="amount" class="form-control border-0 pl-0 bg-white" disabled="" />
            </div>
            <div class="col-lg-6">
                <h3 class="mb-3 h6 text-uppercase text-black d-block">Filtrar por Referência</h3>
                <button type="button" class="btn btn-secondary btn-md dropdown-toggle px-4" id="dropdownMenuReference"
                        data-toggle="dropdown">Referencência</button>
                <div class="dropdown-menu" aria-labelledby="dropdownMenuReference">
                    <a class="dropdown-item" href="<?php echo get_home_url(); ?>/categorias/<?php echo $slug_tax; ?>/?orderby=name-asc">Nome, A para Z</a>
                    <a class="dropdown-item" href="<?php echo get_home_url(); ?>/categorias/<?php echo $slug_tax; ?>/?orderby=name-desc">Nome, Z para A</a>
                    <div class="dropdown-divider"></div>
                    <a class="dropdown-item" href="<?php echo get_home_url(); ?>/categorias/<?php echo $slug_tax; ?>/?orderby=price-asc">Preço, menor para maior</a>
                    <a class="dropdown-item" href="<?php echo get_home_url(); ?>/categorias/<?php echo $slug_tax; ?>/?orderby=price-desc">Preço, maior para menor</a>
                </div>
            </div>
        </div>

        <div class="row">
          
Código da página taxonomy-categorias.php
<?php
         
          if (have_posts()) : while (have_posts()) : the_post();

        ?>

            <div class="col-sm-6 col-lg-4 text-center item mb-4">
                
                <a href="<?php the_permalink();?>"> <?php the_post_thumbnail( 'thumbnail', array( 'class' => 'img-fluid p-5' ) ); ?> </a>
                <h3 class="text-dark"><a href="<?php the_permalink();?>"><?php the_title();?></a></h3>
                
                    <?php $preco_desconto = get_field('preco_com_desconto');?>
                    <?php
                        if($preco_desconto != ""){?>
                        <p class="price">R$<del><?php the_field('preco'); ?></del>— R$<?php the_field('preco'); ?> </p> 
                    <?php }else{?>
                        <p class="price">R$<?php the_field('preco'); ?></p> 
                    <?php }?>     
            </div>
            
            <?php
            endwhile; endif;
            
           ?>

 

 


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por jucamillo
      Ola pessoal, tudo bem?
       
      Sou nova por aqui mas preciso de uma ajuda importante.
       
      Estou desenvolvendo um site no woocommerce e na página "single" do produto preciso criar uma tabela que mostre uma taxonomia, de nome "cultura". A questão é que cada item dessa taxonomia possui filho e neto, ou seja uma hierarquia.
       
      Não sou muito boa com php, mas consigo resolver algumas coisas com a ajuda do google sempre que preciso no wordpress. Infelizmente dessa vez não deu tão certo.
       
      Eu consegui gerar a tabela exatamente como eu precisava, vcs podem ver pelo link:
      http://jucamillo.com.br/projetos/arysta/produto/adage-350-fs/
      (desça a página ate a tabela azul com "cultura", "Alvo", "nome cientifico")
       
       
      Se vocês analisarem essa página esta puxando milhoes de culturas, porque esta puxando todas as taxonomias cadastradas no woocommerce, mas eu precisava que ela puxasse apenas as taxonomias cadastradas no produto que estou vendo.
       
      O codigo que eu criei para puxar tudo como eu queria esta logo abaixo, mas note que eu preciso poder separar o pai, o filho e o neto, de preferencia exatamente como esta no codigo atual, mas com algum tipo de filtro que puxe apenas o que é deste produto em questao. 
       
                  $args = array(                 'taxonomy'      => 'cultura',                 'parent'        => 0, // get top level categories                 'orderby'       => 'name',                 'order'         => 'ASC',                 'hierarchical'  => 1,                 'pad_counts'    => 0             );             $categories = get_categories( $args );             foreach ( $categories as $category ){                 echo '<tr><td>'. $category->name . '</td>';                 $sub_args = array(                     'taxonomy'      => 'cultura',                     'parent'        => $category->term_id, // get child categories                     'orderby'       => 'name',                     'order'         => 'ASC',                     'hierarchical'  => 1,                     'pad_counts'    => 0                 );                 $sub_categories = get_categories( $sub_args );                 echo '<td colspan="2"><table border="0" style="border:0;">';                 foreach ( $sub_categories as $sub_category ){                     echo '<tr><td>'. $sub_category->name . '</td>';                     $sub_sub_args = array(                         'taxonomy'      => 'cultura',                         'parent'        => $sub_category->term_id, // get child categories                         'orderby'       => 'name',                         'order'         => 'ASC',                         'hierarchical'  => 2,                         'pad_counts'    => 0                     );                     $sub_sub_categories = get_categories( $sub_sub_args );                     echo '<td style="border:0; border-bottom: 1px solid #fff;"><table border="0" style="border:0;">';                     foreach ( $sub_sub_categories as $sub_category ){                         echo '<tr><td style="border:0; ">'. $sub_category->name . '</td></tr>';                     }                     echo '</table></td>';                 }                 echo '</tr></table></td>';                 echo '</tr>';             }  
       
       
       
       
       
      eu tentei fazer algo como isso aqui tambem, inserindo o $post, mas nao funciona. 
      $args = array( 'taxonomy' => 'cultura', 'parent' => 0, // get top level categories 'orderby' => 'name', 'order' => 'ASC', 'hierarchical' => 1, 'pad_counts' => 0 ); $categories = get_categories( $post, $args ); foreach ( $categories as $category ){ echo '<tr><td>'. $category->name . '</td>'; $sub_args = array( 'taxonomy' => 'cultura', 'parent' => $category->term_id, // get child categories 'orderby' => 'name', 'order' => 'ASC', 'hierarchical' => 1, 'pad_counts' => 0 ); $sub_categories = get_categories( $sub_args ); echo '<td colspan="2"><table border="0" style="border:0;">'; foreach ( $sub_categories as $sub_category ){ echo '<tr><td>'. $sub_category->name . '</td>'; $sub_sub_args = array( 'taxonomy' => 'cultura', 'parent' => $sub_category->term_id, // get child categories 'orderby' => 'name', 'order' => 'ASC', 'hierarchical' => 2, 'pad_counts' => 0 ); $sub_sub_categories = get_categories( $sub_sub_args ); echo '<td style="border:0; border-bottom: 1px solid #fff;"><table border="0" style="border:0;">'; foreach ( $sub_sub_categories as $sub_category ){ echo '<tr><td style="border:0; ">'. $sub_category->name . '</td></tr>'; } echo '</table></td>'; } echo '</tr></table></td>'; echo '</tr>'; }  
       
       
       
      outra forma que tentei foi usando a funcao get_the_terms , essa funcao desse jeito printa so os termos do produto em questao, mas nao sei como quebrar ela e transformar em algo como a funcao anterior, onde eu pego primeiro o pai, depois os filhos desse pai, e depois o filho do filho, entende?
      $terms = get_the_terms( $post->ID , 'cultura' ); foreach ( $terms as $term ) { echo $term->name; };  
       
       
       
      bom, espero que alguém possa me ajudar, por favor!!
       
       
       
      Muito obrigada;
       
    • Por LuizSant0s
      Eu criei um custom post e uma página estática para postar determinado conteúdo.

      Este é o meu functions.php:


      add_action( 'init', 'create_post_fotos' );

      function create_post_fotos() {
      register_post_type( 'Fotos',
      array(
      'labels' => array(
      'name' => __( 'Fotos' ),
      'singular_name' => __( 'Fotos' )
      ),
      'public' => true,
      'has_archive' => true,
      'supports' => array( 'title', 'editor', 'thumbnail' ),
      'taxonomies' => array( 'category', 'post_tag' )

      )
      );

      }
      Eu consigo criar as postagens e fazer com que elas sejam exibidas nesta tal página estática, adiciono categorias e tags a ela. Porém, quando eu clico na categoria que eu crie pelo site, nada é exibido. O pior é que ele não apresenta nenhum tipo de erro 404 ou no código. Parece que ele não está encontrando o conteúdo atribuido a tal tag. Pois, isto só está acontecendo com esse Custom Post que criei.

      No custom post padrão do wordpress, crio as categorias e ao clicá-las as postagens referentes a categoria escolhida é exibida normalmente.

      Tenho minha página "Fotos";
      Faço postagens nela normalmente;
      Crio categorias e tags e elas aparecem no site;
      PORÉM, no site, quando eu clico nessas categorias nada é exibido.
      Alguém já passou por esse tipo de problema? Como posso resolvê-lo?

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.