web-dev-qa-db-fra.com

Définir un thème pour tous les sous-ensembles de la catégorie

Je sais que je peux définir un modèle de thème pour n'importe quelle catégorie, ce qui définit le nom du fichier php comme suit: category-16.php

Mais il y a beaucoup de sous-ensembles pour ma catégorie16. Je veux cet ensemble de modèles pour tout le sous-ensemble de category16.

Comment?

1
Aria Maghsoody

Il y a deux fonctions dont vous avez besoin pour accomplir cela. Tout d’abord, vous devrez savoir si une catégorie est une sous-activité de 16. C’est cat_is_ancestor_of . Deuxièmement, vous devrez forcer cette catégorie à utiliser le modèle de 16, que vous utilisez avec locate_template . Sachant cela, vous pouvez créer un filtre sur la fonction qui détermine le modèle à utiliser pour une page de catégorie comme celle-ci:

add_filter ('category_template', 'wpse24089_category_template');

function wpse24089_category_template( $template ) {
    $current_cat = get_queried_object_id();
    if (cat_is_ancestor_of (16, $current_cat))
        $template = locate_template( 'category-slider.php' );
    return $template;
    }
1
cjbj