Créer une page d’archive d’un format d’article sous WordPress

À la différence d’un type de contenu ou d’une taxonomie, un format d’article ne dispose pas d’une page d’archives qui permettrait de lister tous les contenus disposant d’une mise en page en particulier. Techniquement, c’est logique car rappelons une nouvelle fois que cette fonctionnalité est conçue dans un but de mise en forme. Pour autant, il peut être utile de retrouver sur une page l’ensemble des articles au format vidéo comme c’est le cas sur ma page de podcasts vidéos.

Nous aurons ici recours à la création d’un modèle de page pour WordPress, ni plus ni moins, et d’une requête personnalisée pour récupérer les articles au(x) format(s) souhaité(s).

N.B : le code ci-dessous est volontairement simplifié en faisant abstraction de toute structure HTML, celle-ci dépendant directement de votre thème WordPress. De fait, reportez-vous au tutoriel sur la création de modèle de page pour en savoir plus.

Étape n°1 – Création du modèle de page

À l’aide de votre client FTP favori, créez un nouveau fichier que vous nommerez par exemple template-NOM_DU_FORMAT.php. Ce dernier doit être placé à la racine du dossier de votre thème WordPress – qu’il s’agisse d’un thème parent ou enfant.

Commençons par définir le modèle de page pour qu’il soit reconnu par WordPress, j’entends par là qu’il pourra être choisi dans la liste des modèles disponibles pour votre page au sein du back-office.

Copiez donc le bout de code suivant en début de fichier :

<?php if ( !defined('ABSPATH') ) die('Zone interdite'); ?>
<?php
/*
Template Name: Podcasts
*/
?>
<?php get_header(); ?>

Étape n°2 – Récupération des contenus

Nous aurons recours à la fameuse WP_Query pour lister les articles dont le format souhaité. Il nous faut définir une tax_query comme argument qui ira chercher le format vidéo dans cet exemple. Vous pouvez ajouter les formats de votre choix en les séparant par des virgules dans le tableau array('post-format-video').

On boucle ensuite pour afficher les contenus en respectant les formats bien entendu ce que votre thème doit supporter ! Il s’agit de la structure définie par get_template_part('content', get_post_format());.

<?php
			$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
			
			$args = array (
				'paged'		=> $paged,
				'tax_query' => array(
					array(
						'taxonomy' => 'post_format',
						'field'    => 'slug',
						'terms'    => array( 'post-format-video' ),
					),
				),
			);

			$the_query = new WP_Query( $args );
		?>

		<?php if ( $the_query->have_posts() ) : ?>
			<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
				<?php get_template_part('content', get_post_format()); ?>
			<?php endwhile; ?>
		<?php wp_reset_postdata(); ?>
	<?php else: ?>
		<?php _e('No content found', 'wpc'); ?>
	<?php endif; ?>

Étape n°3 – Création de la page

Dans votre administration WordPress, créez une nouvelle page pour laquelle vous assignerez le modèle nouvellement codé à partir de Attributs de la page.

wpchannel-template-page

Dans notre exemple, il s’agira de Podcasts.

Publiez la page et admirez le résultat final ! Il ne vous reste plus qu’à ajouter cette dernière dans le menu de navigation et le tour est joué !

Crédits photo : zoomar

6 commentaires

    1. Aurélien Denis auteur de l’article

      D’un point de vue SEO, c’est un non-sens que de créer une catégorie qui n’a aucun lien sémantique avec le reste du site. C’est un terme générique et les formats d’articles ont justement été créés pour éviter d’utiliser les catégories qui sont là pour classer des contenus et en aucun cas s’occuper de mise en forme.

  1. un coup du lapin

    Merci pour ce tutoriel qui répond parfaitement à ce que je souhaite faire

    Je rencontre un problème avec la pagination (avec the_posts_pagination précisément) et après avoir fouiné, je suis tombée sur ce « hack » :
    http://wordpress.stackexchange.com/questions/120407/how-to-fix-pagination-for-custom-loops/120408#120408

    je ne suis pas une pro de WP alors j’hésite à utiliser ce hack ou bien créer une catégorie pour contourner le problème (même si c’est « pas bien » et que ça fera faire une manip de plus à l’utilisateur final du site)

    As-tu rencontré le même problème que moi et comment l’as-tu résolu ?

  2. un coup du lapin

    j’ai vraiment pas compris pourquoi la pagination déconnait et j’ai découvert accidentellement qu’on pouvait accéder aux archives par format : url/type/le-format/

    je me suis donc contentée de personnaliser la page des archives

Laisser un commentaire

Thèmes & Plugins
Premium By WP Channel

WP Alacarte propose des produits et services de qualité
made in France pour la plateforme WordPress.

Tout est prêt pour créer votre site à la carte !

  • Thèmes et extensions premium
  • Facilité d’utilisation garantie
  • Temps de chargement optimisé
  • Personnalisation avancée
Découvrir

Rejoignez la communauté WordPress !

Faites partie de l’aventure en devenant membre d’une association WordPress. Conférences, ateliers, BarCamp, WordCamp… Venez
partager votre passion pour WordPress !

Aurélien DENIS,
président des associations WordPress Francophone et WPMX