Communauté
Rejoignez la communauté Geekeries sur Google+ › Découvrez mag.geekeries.fr

Afficher les « Custom Post Types » sur votre blog et flux RSS !

Publié par Valentin dans WordPress
Modifié le 30 mars 2013 à 12:55.

Dans la nouvelle version de WordPress, il vous est possible de créer des modules personnalisés contenant des articles dédiés. Cependant, leurs gestions et l’affichage des contenus inédites restent encore compliqués.

Justin Tadlock met avant la simplicité d’afficher les nouveaux types de modules d’articles sur la page d’accueil de votre blog WordPress, mais également dans flux d’informations. En effet, bien que cette fonctionnalité est très efficace elle reste néanmoins accessible qu’à une partie des utilisateurs du gestionnaire de contenu qu’est WordPress. Ces types de modules d’articles peuvent être créés et gérer directement depuis l’interface d’administration de votre blog via l »utilisation de l’extension « Custom Post Type UI » (déjà présenté). Il existe également une extension pour gérer, depuis votre interface de création de contenu, l’affichage de vos nouveaux modules d’articles.

Custom Post Type Viewer est une extension qui vous permet, une fois activé, d’afficher certain ou l’ensemble des modules d’articles créés préalablement. Directement intégré dans les options de « Lectures » de votre installation WordPress, il vous suffit alors de cocher la case correspondant à votre module d’articles. Aucune autre action n’est nécessaire et les articles correspondant aux modules sélectionnés seront automatiquement affichés sur votre page d’accueil. Néanmoins, il n’est toujours pas possible d’afficher ces modules d’articles dans votre flux d’informations. Si vous souhaitez fusionner un module d’articles avec votre flux d’informations principal.

Afficher les

Utilisation

Cité en début d’article, Justin met avant la possibilité d’afficher ces modules d’articles via une portion de code. Réservé aux personnes s’y connaissant un peu, nous vous proposons de vous expliquer comment intégrer et alors afficher vos modules d’articles sur votre blog WordPress, mais également dans votre flux d’informations. Tout d’abord, nous allons éditer le fichier de votre thème WordPress « functions.php« . Il vous suffit de coller le code suivant dans ce fichier.

add_filter( 'pre_get_posts', 'my_get_posts' );
function my_get_posts( $query ) {
	if ( is_home() && false == $query->query_vars['suppress_filters'] )
		$query->set( 'post_type', array( 'post', 'decouvertes' ) );
	return $query;
}

L’attribut « decouvertes » correspond au type de module d’articles. Ceci est donc à modifier par le type de module que souhaitez voir affiché. Pour en afficher plusieurs, il vous suffit d’une ajouté une virgule et d’y attribuer la valeur du module entre les guillemets. Cela peut éventuellement nous donner cela.

add_filter( 'pre_get_posts', 'my_get_posts' );
function my_get_posts( $query ) {
	if ( is_home() && false == $query->query_vars['suppress_filters'] )
		$query->set( 'post_type', array( 'post', 'decouvertes', 'livres', 'films', 'liens' ) );
	return $query;
}

Activer l’affichage dans le flux d’informations !

Nous avons vu comment afficher les nouveaux modules d’articles dans votre page d’accueil. Il reste néanmoins l’impossibilité de les voir dans votre flux d’informations. Pour cela, il vous suffit d’ajouter la valeur « is_feed » à la suite de la fonction principale. Pour cela, il vous suffit de remplacer la ligne « 3″ du code précédemment cité (l’un des deux, selon vos paramètres). Cela nous donne alors cette fonction, toujours à insérer dans le fichier « functions.php » de votre thème.

add_filter( 'pre_get_posts', 'my_get_posts' );
function my_get_posts( $query ) {
if ( ( is_home() && false == $query->query_vars['suppress_filters'] ) || is_feed() )
		$query->set( 'post_type', array( 'post', 'decouvertes' ) );
	return $query;
}

Conclusion

Vos « Custom Post Types » sont maintenant affichés sur votre page d’accueil et dans votre flux d’informations. Vous pouvez les insérer dans d’autres éléments tels la page d’article, pour promouvoir vos contenus, mais d’une différentes manière ou dans vos pages WordPress. Pour cela rien de bien compliqué. WordPress dispose de nombreux attribues personnalisés, en voici la liste.

is_home()
is_single()
is_page()
is_category()
is_author()
is_date()
is_paged()
is_404()

is_year()
is_month()
is_day()
is_time()
is_archive()
is_search()
is_feed()