web-dev-qa-db-fra.com

Ajouter une classe de corps de la catégorie parent

Je ne suis pas un codeur, mais je me débrouille généralement bien avec Wordpress en faisant mes recherches et en trouvant ma solution. Je ne trouve pas ce que je dois faire cette fois-ci, j'ai donc essayé de cogner un code ensemble. Ce que je tente de faire, c'est que lorsque je suis dans l'archive des catégories, je veux ajouter une classe de corps de la catégorie parent. C’est ce que j’ai essayé et cela fonctionne indépendamment du fait que je reçois l’ID de la catégorie parents, mais je veux le slug/nicename:

add_filter('body_class','hw_custom_body_class');
  function hw_custom_body_class($classes){
  if(is_category()){
  $categories = get_the_category();
  $category = strtolower($categories[0]->category_parent);
  $classes[]='category-'.$category;
  return $classes;    }}
2
Andrew Smart

Utilisez get_ancestors() pour obtenir les termes parents. Voici un extrait de mon plugin Termes parent T5 dans body_class :

    $ancestors = get_ancestors(
        get_queried_object_id(),
        get_queried_object()->taxonomy
    );

    if ( empty ( $ancestors ) )
    {
        return $classes;
    }

    foreach ( $ancestors as $ancestor )
    {
        $term          = get_term( $ancestor, get_queried_object()->taxonomy );
        $new_classes[] = esc_attr( "parent-$term->taxonomy-$term->slug" );
    }

Cela fonctionnera avec n'importe quelle taxonomie, pas seulement les catégories.

5
fuxia