J'ai la structure de cette catégorie pour mes articles de blog:
Catégorie des grands-parents-> Catégorie parente -> Catégorie 1, Catégorie 2, Catégorie 3
le poste est attribué uniquement à l’une des catégories de petits-enfants et j’aimerais utiliser un modèle spécifique pour toutes les catégories ayant ce grand-parent spécifique (je ne souhaite pas les affecter à la catégorie de grands-parents car je ne souhaite pas grand-parent à apparaître dans la liste des messages).
function get_custom_cat_template($single_template) {
global $post;
if ( in_category( 'Grandparent Category' )) {
$single_template = dirname(__FILE__) . '/single-template.php';
}
return $single_template;
}
add_filter( "single_template", "get_custom_cat_template" ) ;
Je me suis rendu compte que si la publication n'est pas affectée également à la catégorie des grands-parents, la fonction in_category () ne fonctionne pas, mais j'aimerais avoir quelque chose qui dit -
Si cette catégorie de poste a ce grand-parent, utilisez ce modèle spécifique.
Merci d'avance pour votre aide!
Laissez-moi mettre à jour votre code :)
Vous n'avez pas besoin de sélectionner la catégorie des grands-parents pour votre message. Nous devons d’abord avoir le nom de la catégorie des grands-parents. Voici la fonction;
function get_grandparents_category_salgur( $id) {
$parent = get_term( $id, 'category' );
if ( is_wp_error( $parent ) )
return $parent;
if ( $parent->parent && ( $parent->parent != $parent->term_id ) ) {
$go_get_gp = get_term( $parent->parent, 'category' );
}
$grandparent = get_term( $go_get_gp->parent, 'category' );
return $grandparent->name;
}
Ce code trouvera le nom de la catégorie des grands-parents. Après cela, nous pouvons définir votre fonction.
function get_custom_cat_template($single_template) {
global $post;
$postcat = get_the_category( $post->ID );
$grandparent_name = get_grandparents_category_salgur( $postcat[0]->term_id);
if ( $grandparent_name === 'Grandparent Category' ) {
$single_template = dirname(__FILE__) . '/single-template.php';
}
return $single_template;
}
add_filter( "single_template", "get_custom_cat_template" );