web-dev-qa-db-fra.com

Répertorier tous les messages dans Type de message personnalisé, mais regrouper dynamiquement par taxonomies personnalisées

J'ai un type de message personnalisé nommé "Ressources" qui a une taxonomie nommée "Types". Je l'ai manuellement en tirant chaque terme, ce qui n'est pas la solution la plus élégante et chaque fois qu'un nouveau terme est ajouté, je dois l'ajouter manuellement.

J'ai besoin d'un moyen pour les termes de peupler avec les messages associés énumérés ci-dessous. J'ai une boucle personnalisée pour afficher chaque message (en saisissant des champs personnalisés), donc je dois pouvoir contrôler ce qui est affiché pour chaque message.

Y a-t-il un moyen facile de s'y prendre? Merci.

1
nurain

Essayez ce morceau de code pour le modèle de page. Je l'ai utilisé sur l'un de mes projets. Il affiche le terme de taxonomie un par un avec la liste de tous les articles contenant ce terme. (Il suffit de remplacer YOUR_TAXONOMY_SLUG par le vôtre)

<div id="content">
<h2 class="entry-title"><?php the_title(); ?></h2>
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    $mytaxonomy = get_terms('YOUR_TAXONOMY_SLUG', array("fields" => "names"));
    <?php for ( $myterm = 0; $myterm < count($mytaxonomy); $myterm++) { ?>
        <h3><?php echo $mytaxonomy[$myterm]; ?>:</h3>
        <ul class="taxonomy_group">
        <?php $loop = new WP_Query(array('YOUR_TAXONOMY_SLUG' => $mytaxonomy[$myterm]));
            while ( $loop->have_posts() ) : $loop->the_post(); ?>
                <li><a href="<?php the_permalink(); ?>"><?php the_title();?></a></li>
            <?php endwhile; ?>  
        </ul>
    <?php } ?>
    </div><!-- #post-## -->
</div><!-- #content -->
3
YoYurec

Prenez note, cette boucle ne fonctionnera que si la catégorie est un seul mot. WP_Query nécessite la catégorie SLUG dans la boucle. Si le nom de la catégorie est composé d'au moins deux mots séparés par un espace, cela ne fonctionnera pas (je peux le vérifier car je viens de l'essayer). Je n'ai toujours pas trouvé le moyen d'extraire le slug du terme de taxonomie donné, mais j'y travaille.

ADDENDA: Pensez que j'ai trouvé un moyen de résoudre le problème du nom de plusieurs mots. Semble travailler dans mon code.

    <div id="content">
<h2 class="entry-title"><?php the_title(); ?></h2>
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php $terms = get_terms('YOUR_TAXONOMY_SLUG');
    $count = count($terms); ?>
<?php if ($count > 0) {
    foreach ( $terms as $term) { ?>
        <h3><?php echo $term->name; ?></h3>    
        <ul class="taxonomy_group">
        <?php $loop = new WP_Query(array('YOUR_TAXONOMY_SLUG' => $term->slug));
            while ( $loop->have_posts() ) : $loop->the_post(); ?>
                <li><a href="<?php the_permalink(); ?>"><?php the_title();?></a></li>
            <?php endwhile; ?>  
        </ul>
    <?php }
    } ?>
    </div><!-- #post-## -->
</div><!-- #content -->

Faites-moi savoir si cela fonctionne pour quelqu'un d'autre ou s'ils voient des trous.

1
Robert Kopacz