Modifier le nombre d’article par page pour un custom post type

Modifier le nombre d’article par page pour un custom post type

Lors de la mise en place de « Custom post type », on souhaiterait que sur l’affichage (les archives par exemple : http://wwww.monsite.com/cpt/) le nombre par défaut d’objets affichés ne soit pas le même que celui des articles (10 par défaut et réglable dans le menu : Réglages > Lecture).

Dans mon exemple, je m’en sert pour afficher tous les FAQ et non les dix premières, dans l’ordre croissant du paramètre menu_order.

Ce bout de code est à mettre dans votre plugin ou bien dans le fichier function.php du thème.

Vous noterez que ce hook (pre_get_posts) permet donc de modifier la requête avant son exécution, contrairement à l’utilisation de query_posts ou WP_Query, qui vont obliger la réalisation d’une nouvelle requête.

add_filter( 'pre_get_posts', 'faq_posts' );

function faq_posts( $query ) {
	//var_dump( $query );
	if ( is_post_type_archive('faq') && $query->is_main_query() ){
		$query->set( 'posts_per_page', -1 );
		$query->set( 'orderby', 'menu_order' );
		$query->set( 'order', 'ASC');
	}
 return $query;
}

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *