Propaganda, les news du studio Blue room.

Définir un template single à une taxonomie dans WordPress

29
Août

Par : Jeff dans la catégorie : Web

Mots clés :

Par défaut on ne peut pas définir un template single à une taxonomie dans WordPress, contrairement aux catégories.

Voici une function qui vous permettra de définir un single différent à votre taxonomie. Imaginons vous avez un custom post type « projet » pour votre portfolio et que vous définissez une taxonomie « type ». Afin d’afficher chaque projet dans un single qui soit pas le même que le single.php par défaut de votre thème vous devez ajouter cette fonction dans votre fichier function.php :

function get_custom_single_template($single_template) {
    global $post;

    if ($post->post_type == 'projet') {
        $terms = get_the_terms($post->ID, 'type');
        if($terms && !is_wp_error( $terms )) {
            //Make a foreach because $terms is an array but it supposed to be only one term
            foreach($terms as $term){
                $single_template = dirname( __FILE__ ) . '/single-'.$term->slug.'.php';
            }
        }
     }
     return $single_template;
}
add_filter( "single_template", "get_custom_single_template" ) ;

Sur la première ligne on créer la fonction, on vérifie si le post_type est bien égal au nom de notre custom_post_type (ici ‘projet’ à remplacer avec votre propre custom_post_type), puis on va chercher le nom de notre taxonomie ‘type’ (à remplacer par votre taxonomie). Ensuite si on récupère le bon fichier single_votre_slug.php.

Il vous faut ensuite créer les fichiers single correspondant aux différents slugs de votre taxonomie, si par exemple vous avez créer le slug « web » ou « logo », vous créer vos fichiers singles de la façon suivante :

single-web.php
single-logo.php

Source de l’article

EnregistrerEnregistrer

EnregistrerEnregistrer

Vous avez aimé ?

Laisser un commentaire

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