- WordPress :6.7
- Statut : résolu
- Ce sujet contient 33 réponses, 3 participants et a été mis à jour pour la dernière fois par
fifidibosco, le il y a 1 mois.
-
AuteurMessages
-
11 mai 2025 à 19 h 10 min #2488827
Ma configuration WP actuelle
- Version de PHP/MySQL : 8.2.23
- Thème utilisé : Kadence
- Extensions en place : Elementor, loco translate, PDF poster, sticky menu, WP latest posts
- Nom de l’hébergeur : Local
- Adresse du site : Local
Problème(s) rencontré(s) :
Bonjour à tous,
j’aimerais savoir s’il existe un widget qui permette d’afficher le nombre d’articles d’une catégorie.
Par avance merci,
Fifi
11 mai 2025 à 19 h 50 min #2488830Bonjour,
Oui: vous avez ce widget. Il y en a peut-être d’autres.
12 mai 2025 à 10 h 35 min #2488866Merci ferman, je vais voir ça de ce pas 😉
fifi
12 mai 2025 à 11 h 25 min #2488872Après avoir essayé l’extension WP Categories Widget, il s’avère que ça correspond pas exactement à ce que je cherche.
Ce que je voudrai c’est pouvoir afficher le nombre d’articles d’une catégorie dans un texte directement dans le corps d’une page, dans le genre « la catégorie Camions bleus contient 6 documents », pas dans une barre latérale.
je continue à chercher,
fifi
12 mai 2025 à 18 h 21 min #2488879Ce que je voudrai c’est pouvoir afficher le nombre d’articles d’une catégorie dans un texte directement dans le corps d’une page
Donc ce n’est pas un widget que vous recherchez (on ne peut pas le mettre dans le corps d’une page) mais une extension ou du code. Je ne sais pas si une extension juste pour ça existe mais voici un petit morceau de code (il en existe d’autres) qui devrait permettre de faire ce que vous voulez.
function countcateg(){
ob_start();
$terms = get_terms (array( 'taxonomy'=>'category',
'hide_empty'=> 1 )); //Exclut les catégories vides .'hide_empty'=> 0: Inclut les catégories vides.
?><div><ul class = "post_count"><?php
foreach ($terms as $term):
$term_count = $term->count;
$term_name = $term->name;
$term_id = $term->term_id;
echo '<li>'. "La catégorie" .'<a href="' . get_term_link( $term_id ).'">' .'  '. $term_name .'</a>'.'  '."compte".'  ' .'<span>'. $term_count .'</span>'.'  '. "documents". '</li>';
endforeach;
?><ul></div><?php
return ob_get_clean()
}
add_shortcode ('votre_shortcode', 'countcateg');Je suppose que vous savez utiliser les shortcodes?
Le code lui même est à copier/coller soit dans fonctions.php d’un thème enfant soit (c’est le plus simple) de passer par le plugin « code snippets« :Ajouter un nouvel extrait, lui donner un nom et copier/coller le code dans la fenêtre. Enregistrer et activer.
Il ne restera qu’un peu de mise en page à faire en CSS.
13 mai 2025 à 11 h 46 min #2488896Bonjour, en voici un autre personnalisé ou celui-ci va chercher tous les articles ayant un statut publié :
function noucode_category_count($atts) {
$atts = shortcode_atts(
array(
'category_name' => 'uncategorized'
),
$atts,
'my_count_category'
);
$args = array(
'post_type' => 'post',
'category_name' => $atts['category_name'],
'post_status' => 'publish',
);
$response_query = new WP_Query($args);
$number_post = $response_query->found_posts;
$render_html = "<p>Vous avez {$number_post} article(s) dans la catégorie <strong>{$atts['category_name']}</strong>.</p>";
return echo _e($render_html);
}
add_shortcode('my_count_category', 'noucode_category_count');Il suffira juste d’écrire comme ceci : [my_count_category category_name= »nom de la catégorie »]
13 mai 2025 à 12 h 19 min #2488899Bonjour ferman et merci
je ne pourrai vérifier que ce weekend et je reviendrai avec le résultat (ou de nouvelles questions…)
bonne journée
fifi
14 mai 2025 à 12 h 44 min #2488946Bonjour,
je ne pourrai vérifier que ce weekend et je reviendrai avec le résultat (ou de nouvelles questions…)
Je ne serai disponible ni ce weekend ni la semaine prochaine mais vous ne devriez pas avoir de problème. Le rendu pourra éventuellement être ajusté en CSS à votre goût ultérieurement.
14 mai 2025 à 18 h 47 min #2488952Cette réponse a été marquée comme privée.14 mai 2025 à 19 h 48 min #2488955Cette réponse a été marquée comme privée.14 mai 2025 à 20 h 46 min #2488958Cette réponse a été marquée comme privée.15 mai 2025 à 19 h 21 min #2489000Bonjour @fifidibosco,
Je me rends compte seulement maintenant que vous souhaitez afficher le nombre d’articles pour une seule catégorie. Dans ces conditions il faut préciser cette catégorie dans la première ligne du code que je vous avais donné (qui est prévu pour afficher le nombre d’articles pou chaque catégorie) donc voici le code modifié:
function countcateg(){
ob_start();
$terms = get_terms (array( 'taxonomy'=>'category','name' => 'uncategorized',
'hide_empty'=> 1 )); //Exclut les catégories vides .'hide_empty'=> 0: Inclut les catégories vides.
?><div class = "post_count"><ul >
<p class = "nombre_articles">Nombre de documents par catégories</p>
<?php
foreach ($terms as $term):
$term_name = $term->name;
$term_count = $term->count;
$term_id = $term->term_id;
echo '<li>'. "La catégorie" .'<a href="' . get_term_link( $term_id ).'">' .'  '. $term_name .'</a>'.'  '."compte".'  ' .'<span>'. $term_count .'</span>'.'  '. "documents". '</li>';
endforeach;
?><ul></div><?php
return ob_get_clean();
}
add_shortcode ('votre_shortcode', 'countcateg');Le code donné par @gav974 est prévu pour afficher le nombre d’aricles pour une catégorie. il fonctionne bien mais il faut modifier la dernière ligne de la manière suivante:
return echo _e($render_html);
//modifier en
return _e($render_html);Dans les deux cas pensez à remplacer « uncategorized » par le nom de votre catégorie
Dans les deux cas, suivez la procédure indiquée dans la réponse #2488879 pour appliquer le code.
15 mai 2025 à 20 h 14 min #2489001Bonjour ferman
comment je fais pour insérer le code dans la page ? Il n’y a pas de short code ?
je devrais être rentré demain midi j’essaie en arrivant…
fifi
15 mai 2025 à 20 h 17 min #2489002Bonjour gv974
merci pour le coup de main mais vos messages apparaissent en « réponse privée », je ne peux pas les lire.
fifi
-
Cette réponse a été modifiée le il y a 1 mois et 1 semaine par
fifidibosco.
15 mai 2025 à 21 h 00 min #2489004 -
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.