- Statut : non résolu
- Ce sujet contient 21 réponses, 8 participants et a été mis à jour pour la dernière fois par
metachess, le il y a 12 années et 2 mois.
-
AuteurMessages
-
6 août 2008 à 13 h 48 min #461794
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
6 août 2008 à 13 h 58 min #640438Ca 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?
6 août 2008 à 14 h 01 min #640440Ton 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>« ;
}
}
?>6 août 2008 à 14 h 02 min #640441Onyx91 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égorieAffiche 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=
.
<?php wp_list_cats('sort_column=id&optioncount=0&use_desc_for_title=0&child_of=8');
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
6 août 2008 à 14 h 07 min #640439AmO 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 » ?
6 août 2008 à 14 h 12 min #640442Bon 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 !!!
6 août 2008 à 14 h 26 min #640443« 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;6 août 2008 à 14 h 30 min #640444AmO 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 !
6 août 2008 à 14 h 34 min #640445AmO 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…
6 août 2008 à 15 h 59 min #640446Correction 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>« ;
}
}
?>6 août 2008 à 16 h 05 min #640447Fran6 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>« ;
}
}
?>6 août 2008 à 16 h 21 min #640448Dé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…
8 août 2008 à 7 h 59 min #640449Fran6, c’est bon non maintenant ?
Résolu ?8 août 2008 à 8 h 15 min #640450Yes my dear !
18 mai 2009 à 15 h 52 min #640451Salut 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
après j’afficherai le code avec un if($category_id = x)
-
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.