Créer une page d’archives pour des articles personnalisés, avec une taxonomie personnalisée et des champs personnalisés.
Après avoir créé un type d’articles personnalisé, nommé “Fleurs”, avec une nouvelle taxonomie “Couleur”, et un champ personnalisé de type chiffre nommé “Note”, nous allons créer la page d’archive qui va montrer la liste des “Fleurs” avec leur “Couleur” , classé selon leur “Note”.
NB: le type d’article personnalisé (Custom Post Type) et sa taxonomie (Custom Taxonomy) ont été générés avec le plugin CPTUI, le champ personnalisé avec le plugin Advanced Custom Fields.
Cet exemple est valable pour les thèmes basés sur le Framework Genesis.
Dans le dossier du Thème Enfant, créer un fichier archive-fleurs.php
Dans votre fichier entrez le code suivant en remplaçant les termes “Fleurs”, “Note” et “Couleur”.
<?php
//* Template Name: Fleurs Archive */
remove_action ('genesis_loop', 'genesis_do_loop'); // Remove the standard loop
add_action('genesis_loop', 'fleurs_custom_loop');
function fleurs_custom_loop() {
$args = array(
'post_type' => 'fleurs',
'meta_key' => 'note',
'orderby' => 'meta_value',
'order' => 'DESC',
'paged' => get_query_var( 'paged' )
);
$loop = new WP_Query( $args );
if( $loop->have_posts() ):
while( $loop->have_posts() ): $loop->the_post(); global $post;
echo '<div id="fleurs">';
echo '<a href="' . get_permalink() .'">';
echo '<h3>' . get_the_title() . '</h3>';
echo '</a>';
echo '<p>'. get_the_content() .'</p>';
echo '<div class="notetitre">Note :</div>';
echo '<div class="note">'. genesis_get_custom_field( 'note' ) .'</div>';
echo '<div class="couleurtitre">Couleur :</div>';
echo '<div class="taxonomy">'. the_terms( get_the_ID(),'couleur','' ).'</div>';
echo '</div>';
endwhile;
echo '</ul>';
do_action( 'genesis_after_endwhile' );
endif;
}
genesis();
Cette page d’archive montrera les articles personnalisés classés selon le champs personnalisé, avec leur taxonomie, et une pagination.