Suporte » Desenvolvendo com WordPress » Agrupar taxonomias e listar abaixo posts relacionados

  • Criei um post_type chamado **(item)**, no qual o mesmo pode esta ligado a uma taxonomia **(grupo)** pai e/ou filha.

    O meu código esta trazendo certo os grupos, porém na listagem dos posts logo abaixo da grupo, está mostrando os posts dos filhos, mesmo sem esta vinculado ao pai.
    O certo seria ocultar o post “drinks”, pois o mesmo está vinculado apenas a alcoólica.

    IMAGEM: http://prntscr.com/mu4zfx

    O certo seria conforme abaixo. ***Os Drinks poderiam aparecer na parte de bebidas, apenas se selecionado como “pai e filho” na parte de grupos (taxonomia).***

    – Bebidas

    Agua

    – Alcoólicas

    Drink

    – Petiscos

    descricao 1

    descricao 2

    Código:
    $post_type = ‘item’;

    $taxonomies = get_object_taxonomies( (object) array( ‘post_type’ => $post_type ) );
    foreach( $taxonomies as $taxonomy ) :

    $termos = get_terms( $taxonomy,
    array(
    ‘orderby’ => ‘name’,
    ‘status’ => ‘publish’,
    ‘order’ => ‘ASC’,
    ‘hide_empty’ => ‘1’//,
    // ‘parent’ => 0
    )
    );

    foreach( $termos as $term ) :
    // WP_Query arguments
    $args = array (
    ‘post_type’ => $post_type,
    ‘posts_per_page’ => ‘-1’,
    ‘tax_query’ => array(
    array(
    ‘taxonomy’ => $taxonomy,
    ‘field’ => ‘slug’,
    ‘terms’ => $term->slug,
    ‘hierarchical ‘ => 0
    )
    )
    );

    // The Query
    $query = new WP_Query( $args );

    // The Loop
    if( $query->have_posts() ) : ?>
    <dl id=”box-loop-list-<?php echo $term->slug ;?>”>
    <dt>
    <h3><?php echo $term->name ;?></h3>
    <h1></h1>

    </dt>
    <?php while( $query->have_posts() ) : $query->the_post(); ?>
    <dd>
    ” title=”<?php the_title();?>.”><?php the_title();?>
    <i><?php the_content(); ?></i>
    </dd>
    <?php endwhile; ?>
    </dl><?php
    endif;
    endforeach;
    // End foreach term
    endforeach;

    A página que eu preciso de ajuda: [fazer login para ver o link]

Visualizando 1 resposta (de um total de 1)
  • Moderador Ramon

    (@rahmohn)

    Olá @jadsonbsb.

    Experimente passar o argumento include_children com o valor false.

    
    $args = array(
        ...
        'tax_query' => array(
            array(
                'taxonomy' => $taxonomy,
                'field'    => 'slug',
                'terms'    => $term->slug,
                'include_children' => false,
            ),
        ),
        ...
    );
    

    Além disso, você está passando o parâmetro ‘hierarchical ‘ => 0 que não existe na documentação.

Visualizando 1 resposta (de um total de 1)
  • O tópico ‘Agrupar taxonomias e listar abaixo posts relacionados’ está fechado para novas respostas.