web-dev-qa-db-fra.com

Attribuer un modèle unique à plusieurs types de publication personnalisés?

J'ai un certain nombre de types de publication personnalisés que j'aimerais afficher avec le même modèle que j'ai créé initialement en tant que single-photography.php dans mon thème.

Est-il possible d'assigner ce modèle à plusieurs types de publication personnalisés?

Je comprends que je peux probablement le faire dans le fichier single.php avec une inclusion conditionnelle basée sur get_post_type(), mais je me demande s’il existe un meilleur moyen?

4
waffl

Vous pouvez filtrer template_include et transmettre votre modèle personnalisé comme valeur de retour en fonction de vos propres conditions.

Exemple de code, non testé:

add_filter( 'template_include', function( $template ) 
{
    // your custom post types
    $my_types = array( 'photography', 'painting' );
    $post_type = get_post_type();

    if ( ! in_array( $post_type, $my_types ) )
        return $template;

    return get_stylesheet_directory() . '/single-photography.php'; 
});
7
fuxia