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

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.

[php]
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;
}
[/php]

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.

[php]
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;
}
[/php]

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.
[php]
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;
}
[/php]

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()

Allez plus loins

16 réponses

  1. Bonjour touti !

    je me permet de vous poser une question qui me bloque complètement.
    Pour créer et afficher un custom post_type zéro stress vous avez bien expliqué.

    Mon soucis se pose quand je veux lister tout un custom post_type a la façon des category.

    J’ai un custom post_type « Projet » dedans il y a un article « Super »

    quand j’affiche l’article « Super » ca fonctionne et j’ai une adresse du type :

    maintenant si j’efface « Super » pour afficher

    bing ! erreur 404, et je cherche partout dans les fichiers pour lister avec des « if » comme avec les category ou tag etc…

    Merci de votre aide

  2. @Transit d’actualités : Je ne sais pas si tu as testé d’afficher les articles d’un module d’articles, mais les codes fournis un peu partout sur le net ne fonctionnes pas trop.

    J’utilise personnelement le code suivant pour le moment, encore en test.

    $recent = new WP_Query('post_type=decouvertes'); while($recent->have_posts()) : $recent->the_post();

    J’éditerai l’article bientôt.

  3. Ca marche très bien : MERCI !
    Si l’on veut modifier seulement le flux RSS (parce que j’avais déjà fait des template) :

    add_filter( 'pre_get_posts', 'my_get_posts' );
    function my_get_posts( $query ) {
    if ( is_feed() )
    $query->set( 'post_type', array( 'vod' ) );
    return $query;
    }

Laisser un commentaire

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