web-dev-qa-db-fra.com

Afficher un élément par catégorie d'un type d'article personnalisé

Je vais avoir un type personnalisé appelé portfolio avec différentes catégories. Je souhaite afficher toutes mes catégories sauf une. Je souhaite uniquement afficher un élément par catégorie sur ma page.

Je me suis fait péter les plombs là-dessus et je n’ai que la boucle pour afficher tous les éléments de la catégorie mais je ne peux pas obtenir un seul élément par catégorie. Jusqu'ici, je peux afficher les catégories, mais elles se répètent, je n'arrive pas à le montrer une seule fois sur la page. Une catégorie par page.

voici les deux boucles que j'ai essayées.

Boucle1

$args = array (
        'post_type' => 'portfolio',
        'category__not_in' => array(28,30),
    );

    $newQuery = new WP_Query($args);

    if ($newQuery -> have_posts() ):
        while( $newQuery-> have_posts() ): $newQuery-> the_post();
            echo get_the_term_list( $post->ID , 'portfolio_type'); 
        endwhile;
    endif;

    wp_reset_postdata();

Boucle de test 2

$args_cat = array (
        'taxonomy' => 'portfolio_type',
        'exclude' =>  '28,30',
    );
    $categories = get_categories($args_cat);

    foreach($categories as $category):

        $args = array (
            'post_type' => 'portfolio',
            'posts_per_page' => 1,
        );

        $newQuery = new WP_Query($args);

        if ($newQuery -> have_posts() ):
            while( $newQuery-> have_posts() ): $newQuery-> the_post();

                echo get_the_term_list( $post->ID , 'portfolio_type'); 

            endwhile;
        endif;

        wp_reset_postdata();
    endforeach;

Quelqu'un peut-il m'aider merci?!

1
Ebelanger
$args = array(
                    'taxonomy' => 'portfolio_type',
                    'exclude' => '28,30',
                    );
                $tax = get_terms($args);
                foreach($tax as $t){




                    echo '<div class="span3 produto-lista">';

                        $args = array(

                                  'tax_query' => array(
                                    array(
                                        'taxonomy' => 'portfolio_type',
                                        'field' => 'slug',
                                        'terms' => array($t->slug)
                                    )
                                ),
                                  'posts_per_page' => 1,
                                  'post_status' => 'publish',
                                  'order' => 'DESC',

                                  );
                        $query = new WP_Query( $args );




                        while ( $query->have_posts() ) {
                            $query->the_post();

                            ?>

                            <a href="<?php echo get_term_link($t); ?>">

                            <?php
                            the_post_thumbnail(); ?>
                            <h1>
                            <?php
                            echo $t->name; 
                            ?>
                            </h1>
                            </a>
                            <?php
                        }
                        wp_reset_query();
                    echo '</div>';
                }
1
Ebelanger