wordress-loop

Les formats d’articles de WordPress permettent de formater un contenu selon qu’il s’agisse d’une image, d’une brève, d’un lien ou même d’une vidéo à la manière du service Tumblr. Il peut être intéressant de ne pas les intégrer dans la boucle principale de votre page d’accueil afin de ne pas perturber la lecture. Un exemple consistera notamment à les insérer dans une requête type WP_Query dans une colonne latérale ou un modèle de page.

Pour exclure les post_formats de votre page d’accueil, ouvrez le fichier functions.php présent dans le dossier de votre thème. Collez ensuite les lignes de code suivante :

/* Exclure les 'post formats' de la boucle principale */
function wpc_exclude_formats( $query ) {
global $wp_the_query;
if ( ( ! is_admin() ) && ( $query->is_main_query() )) {
$tax_query = array(
array(
'taxonomy'     => 'post_format',
'operator'     => 'NOT IN',
'field'        => 'slug',
'terms'        => array( 'post-format-quote','post-format-link', 'post-format-aside', 'post-format-status' )
)
);
$query->set( 'tax_query', $tax_query );
}
return $query;
}
add_action( 'pre_get_posts', 'wpc_exclude_formats' );

Ce bout de code repose sur le hook pre_get_posts qui va s’exécuter avant la requête principale de WordPress. C’est une technique très utile pour agir directement sur le flux principal des articles.

Vous noterez que les formats d’articles fonctionnent comme n’importe quel taxonomie (mots-clés, catégories, taxonomie personnalisée) et que nous choisissons d’exclure des termes. Dans cet exemple, les formats de type citation, lien, en passant et les statuts sont exclus.

Libre à vous de vous baser sur cet exemple pour créer vos propres utilisations de pre_get_posts !

1 commentaire