Afficher les sous catégories dans les pages de catégories ET articles (Créer un compte)

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 22)
  • Auteur
    Messages
  • #461794
    Fran6
    Participant
    Chevalier WordPress
    107 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 2.6
    – Thème utilisé : Mimbo Pro
    – Plugins en place : la tonne
    – Nom de l’hebergeur :
    – Adresse du site : en local pour le moment…

    Problème(s) rencontré(s) :

    Je voudrais pouvoir afficher dans la sidebar des pages de catégories, les sous-catégories qui lui sont associées. Idem pour les pages d’articles.

    J’ai un code mais qui ne semble pas fonctionner:

    if (is_category()) {
    $this_category = get_category($cat);
    if (get_category_children($this_category->cat_ID) != «  ») {
    echo « <h1>Subcategories</h1>« ;
    echo « <ul>« ;
    wp_list_categories(‘orderby=id&show_count=0&title_li=
    &use_desc_for_title=1&child_of=’.$this_category->cat_ID);
    echo « </ul>« ;
    }
    }

    Merci d’avance pour votre aide !! 😉

    Francis

    #640438
    JayLBR
    Participant
    Maître WordPress
    1067 contributions

    Ca c’est la requette php pour afficher les catégories et sous catégories, je ne sais pas qi c’est ca que tu recherche?

    #640440
    AmO
    Participant
    Maître WordPress
    4443 contributions

    Ton code est bon.
    C’est juste que tu ne dois pas afficher les catégories vides.

    Cf mon code, plus light, plus propre et qui affiche les catégories vides :p

    query_vars[‘cat’];

    if ( get_category_children($category_id) != «  » ) {
    echo « <h2>Subcategories</h2>« ;
    echo « <ul>« ;
    wp_list_categories(‘hide_empty=0&orderby=id&show_count=0&title_li=&use_desc_for_title=1&child_of=’.$category_id);
    echo « </ul>« ;
    }
    }
    ?>

    #640441
    Fran6
    Participant
    Chevalier WordPress
    107 contributions
    Onyx91 wrote:
    Je ne suis pas sur d’avoir bien compris la question, mais peut etre que cela pourra t’aider :

    Afficher Uniquement les Enfants d’une Catégorie

    Affiche les liens des catégories triés par ID (sort_column=id), sans afficher le nombre d’articles par catégorie (optioncount=0, en affichant la description comme titre des liens (use_desc_for_title=0), uniquement les catégories enfants de la catégorie 8 (child_of=8).

    <?php wp_list_cats('sort_column=id&optioncount=0&use_desc_for_title=0&child_of=8');

    Vu ici : http://codex.wordpress.org/fr:Marqueurs_de_Modele/wp_list_cats#Afficher_Uniquement_les_Enfants_d.27une_Cat.C3.A9gorie

    Disons que c’est ça que je voudrais mais de manière dynamique. A chaque fois que j’ouvre une page de catégorie, je veux que les sous catégories de cette page s’affiche dans la sidebar. Mais sans avoir à le faire manuellement comme le propose le codex

    #640439
    Fran6
    Participant
    Chevalier WordPress
    107 contributions
    AmO wrote:
    Ton code est bon.
    C’est juste que tu ne dois pas afficher les catégories vides.

    Cf mon code, plus light, plus propre et qui affiche les catégories vides :p

    query_vars[‘cat’];

    if ( get_category_children($category_id) != «  » ) {
    echo « <h2>Subcategories</h2>« ;
    echo « <ul>« ;
    wp_list_categories(‘hide_empty=0&orderby=id&show_count=0&title_li=&use_desc_for_title=1&child_of=’.$category_id);
    echo « </ul>« ;
    }
    }
    ?>

    C’est bon, ça fonctionne ! 😉 Merci AmO ! Mais dis moi, tu entends quoi par « catégorie vide » ?

    #640442
    Fran6
    Participant
    Chevalier WordPress
    107 contributions

    Bon ici, ça fonctionne pour afficher les sous catégories d’une catégorie… Mais par contre, je ne vois pas du tout comment faire les autres:

    1. J’affiche ma page d’une sous catégorie, et je veux voir apparaître les autres sous catégories, pour la même catégories…

    2. J’affiche un article appartenant à une catégorie, je veux pouvoir afficher toutes les sous catégories de cette catégorie…

    Compliqué je sais, mais que voulez-vous c’est ma dure vie !!!

    #640443
    AmO
    Participant
    Maître WordPress
    4443 contributions

    « catégorie vide » => Sans articles dedans.

    1. Possible avec conditions. Tu as combien de niveau de catégories ?

    2. Meme code, tu remplaces :

    global $wp_query;
    $category_id = $wp_query->query_vars[‘cat’];

    par

    global $post;
    $categories = get_object_term_cache($post->ID, ‘category’);
    $category_id = $categories[0]->term_id;

    #640444
    Fran6
    Participant
    Chevalier WordPress
    107 contributions
    AmO wrote:
    « catégorie vide » => Sans articles dedans.

    1. Possible avec conditions. Tu as combien de niveau de catégories ?

    Je n’ai qu’un seul niveau de sous catégories…

    Merci !

    #640445
    Fran6
    Participant
    Chevalier WordPress
    107 contributions
    AmO wrote:
    global $post;
    $categories = get_object_term_cache($post->ID, ‘category’);
    $category_id = $categories[0]->term_id;

    Ca ne fonctionne pas… Pourtant je comprends le concept et çam ‘a l’air logique mais rien n’apparaît…

    #640446
    AmO
    Participant
    Maître WordPress
    4443 contributions

    Correction et amélioration de mon code:

    query_vars[‘cat’]);

    } elseif ( is_single() ) {

    global $post;
    $categories = get_object_term_cache($post->ID, ‘category’);
    if ( false === $categories )
    $categories = wp_get_object_terms($post->ID, ‘category’);

    $category = current($categories);
    display_category_children($category->term_id);

    }

    function display_category_children( $category_id = 0 ) {
    if( $category_id == 0 ) return  »;

    if ( get_category_children($category_id) != «  » ) {
    echo « <h2>Subcategories</h2>« ;
    echo « <ul>« ;
    wp_list_categories(‘hide_empty=0&orderby=id&show_count=0&title_li=&use_desc_for_title=1&child_of=’.$category_id);
    echo « </ul>« ;
    }
    }
    ?>

    #640447
    AmO
    Participant
    Maître WordPress
    4443 contributions
    Fran6 wrote:
    AmO wrote:
    « catégorie vide » => Sans articles dedans.

    1. Possible avec conditions. Tu as combien de niveau de catégories ?

    Je n’ai qu’un seul niveau de sous catégories…

    Merci !

    j’ai commenté un peu…

    query_vars[‘cat’]);

    } elseif ( is_single() ) { // Vue article unique

    global $post;
    $categories = get_object_term_cache($post->ID, ‘category’); // Cache ?
    if ( false === $categories )
    $categories = wp_get_object_terms($post->ID, ‘category’); // Pas cache ?

    $category = current($categories); // 1ere catégorie ?
    display_category_children($category->term_id);

    }

    function display_category_children( $category_id = 0 ) {
    if( $category_id == 0 ) return  »; // Pas d’id ? pas de sous catégorie…

    // On récupère les données de la catégorie
    $cat = get_category($category_id);

    // Si la catégorie a un parent, alors on utilise le parent, et non la catégorie passé en ID.
    if ( (int) $cat->parent != 0 ) {
    $category_id = $cat->parent;
    }

    if ( get_category_children($category_id) != «  » ) {
    echo « <h2>Subcategories</h2>« ;
    echo « <ul>« ;
    wp_list_categories(‘hide_empty=0&orderby=id&show_count=0&title_li=&use_desc_for_title=1&child_of=’.$category_id);
    echo « </ul>« ;
    }
    }
    ?>

    #640448
    Fran6
    Participant
    Chevalier WordPress
    107 contributions

    Désolé Amaury mais ça ne fonctionne toujours pas… Maintenant ça me casse mon thème et n’affiche plus rien à partir de l’endroit où je place le code…

    #640449
    AmO
    Participant
    Maître WordPress
    4443 contributions

    Fran6, c’est bon non maintenant ?
    Résolu ?

    #640450
    Fran6
    Participant
    Chevalier WordPress
    107 contributions

    Yes my dear !

    #640451
    HimSelf
    Participant
    Chevalier WordPress
    141 contributions

    Salut Amo,

    merci pour cet excellent bout de code qui marche impec,

    en revanche, j’aurais besoins qu’il montre les child_of sans pour autant montrer les « parents » propres à la catégorie.

    Ex :

    Nous sommes dans la catégories : « voyage & tourisme » > « hotels »

    je voudrais qu’il m’affiche uniquement les child_of de « hotels », & non les child_of de « voyage & tourisme ».

    comment récupérer la valeur de la sous catégorie en cours ?

    exemple de ce que j’ai avec ton code : (tu devrais mieux voir ce que je cherche à faire).

    http://www.marocpassion.com/cat/tourisme-voyage/hotels/

    je voudrais n’avoir QUE les régions des différents hotels en gros :D

    après j’afficherai le code avec un if($category_id = x)

15 sujets de 1 à 15 (sur un total de 22)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.