- 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
-
15 mai 2025 à 21 h 02 min #2489005
Bonjour,
no stress, nous avons discuté avec le modérateur et je presente mon corrigé :
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 wp_kses($render_html);
}
add_shortcode('my_count_category', 'noucode_category_count');16 mai 2025 à 14 h 36 min #2489016Bonjour ferman,
mon problème est que je ne vois nulle part de short code à insérer dans Code Snippet. Comment est-il généré et comment le récupérer ?
J’ai essayé le code de gav974 (avec la correction que vous avez apportée) et j’ai mis le short code qu’il indique dans le message #2488896. Le code semble fonctionné sauf qu’il indique 0 message dans la catégorie alors qu’il y en a plusieurs.
fifi
16 mai 2025 à 15 h 41 min #2489017bonjour gav974
je vais esseyé ça, j’utilise le même short code que précédamment ?
fifi
16 mai 2025 à 17 h 46 min #2489020Bonjour
Le shortcode à écrire est sous cette forme [my_count_category category_name= » renseigner le nom de votre categorie » ].
- S’il retourne 0 (donc pas d’article trouvé dans la catégorie), c’est parce qu’il a pris par défaut la catégorie « uncategorized ».
- Dernièrement, le shortcode doit être mis dans un module de texte en fonction de ce que votre utilisé comme page builder ( elementor,divi, …)
- si Gutenberg, vous pouvez utilisez le module code court
En esperant avoir été le plus clair possible
16 mai 2025 à 18 h 00 min #2489021mon problème est que je ne vois nulle part de short code à insérer dans Code Snippet. Comment est-il généré et comment le récupérer ?
Comme expliqué plus haut, le shortcode, qui peut être n’importe quel mot entre crochets (pomme, poire, noisette…etc. vous pouvez si vous voulez l’appeler [votre_shortcode]), doit être inséré dans la page où vous voulez faire apparaître votre liste via un block shortcode (code court); pas dans code snippet.
Dans code snippet vous copiez-collez l’un des deux codes donnés par gav974 ou moi.
Ce qui est important c’est que vous ayez le même mot dans votre shortcode et dans la fonction. Par exemple, gav974 vous a donné comme mot « my_count_category » (ça pourrait être n’importe quoi d’autre). Vous devez donc placer le shortcode [my_count_category] sur une page et vous retrouvez ce même mot dans la fonction « noucode_category_count » ( add_shortcode(‘my_count_category’, ‘noucode_category_count’) qui est mise dans code snippets.
Pour moi ce serait par exemple [pomme] pour le shortcode et add_shortcode (‘pomme’, ‘countcateg’) pour la fonction « countcateg »
Je crois qu’il reste une petite erreur dans le dernier code de gav974. Il faut enlever « wp_kses » avant la parenthèse.
Fatal error: Uncaught ArgumentCountError: Too few arguments to function wp_kses(), 1 passed in C:\xampp\htdocs\site-testals\wp-content\themes\kadence\functions.php on line 67 and at least 2 expected in C:\xampp\htdocs\site-testals\wp-includes\kses.php:747 Stack trace: #0 ......etc
-
Cette réponse a été modifiée le il y a 1 mois par
ferman.
18 mai 2025 à 8 h 08 min #2489046Avant de disparaître pour quelques jours, dernières précisions.
- La manière de procéder que je vous donnais ( « Vous devez donc placer le shortcode [my_count_category] …etc ») fonctionne mais elle utilise un shortcode sans attributs ce qui ne correspond pas à l’idée de @gav974. Suivez donc plutôt complètement sa méthode en utilisant un shortcode avec attributs. Copiez/collez directement le shortcode ci-dessous dans votre page autrement vous aurez des problèmes de mauvais formatage des guillemets et ça ne fonctionnera pas. Il faut bien sûr remplacer « votre_categorie » par le nom de votre catégorie.
- Comme précisé plus haut il faut simplement enlever wp_kses dans le code ensuite il n’y a rien à modifier pour que ça fonctionne (même pas ‘category_name’ => ‘uncategorized’). Je pense que @gav974 vous expliquera tout ça.
[my_count_category category_name="Votre_categorie"]
18 mai 2025 à 11 h 14 min #2489048Bonjour
j'ai installé Code Snippets J'ai créé un snippet dans lequel j'ai ajouté le code de gav974 avec les modifs apportées par farman pour la catégorie "Moteurs"
function noucode_category_count($atts) {
$atts = shortcode_atts(
array(
'category_name' => 'Moteurs'
),
$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 ($render_html);
}
add_shortcode('my_count_category', 'noucode_category_count')j’ai ensuite mis le short code [my_count_category category_name="Moteurs"] dans la page. Lorsque je visualise la page ça m’affiche : <code class="western">Vous avez 0 article(s) dans la catégorie Moteurs Le code semble bien pris en compte dans la page mais le code ne semble pas compter les articles de la catégorie "Moteurs" qui en contient trois.
-
Cette réponse a été modifiée le il y a 1 mois par
fifidibosco.
18 mai 2025 à 11 h 24 min #2489050Bonjour
j’ai installé Code Snippets
j’ai créé puis activé un snippet contenant le code de gav974 avec les corrections apportées par farman, pour la catégorie « Moteurs »
function noucode_category_count($atts) {
$atts = shortcode_atts(
array(
'category_name' => 'Moteurs'
),
$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 ($render_html);
}
add_shortcode('my_count_category', 'noucode_category_count');j’ai ensuite mis le short code [my_count_category category_name= »Moteurs »] dans la page.
Lorsque je visualise la page ça m’affiche : Vous avez 0 article(s) dans la catégorie Moteurs.
Le code semble bien pris en compte dans la page mais ne semble pas compter les articles de la catégorie « Moteurs » qui en contient 2.
Que faire de plus ?
fifi
19 mai 2025 à 6 h 51 min #2489066Bonjour,
Après de nombreux tests, (j’ai vérifié le code) celui-ci dessous est fonctionnel.
Pour rappel, dans le shortcode, il faut notifier le nom de la catégorie, sinon il retournera zéro
Mea-culpa pour le code erroné.
function noucode_category_count($atts)
{
$atts = shortcode_atts(
array(
'category_name' => ''
),
$atts,
'my_count_category'
);
extract($atts);
$args = array(
'post_type' => 'post',
'category_name' => $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 ($render_html);
}
add_shortcode('my_count_category', 'noucode_category_count');19 mai 2025 à 15 h 00 min #2489068Bonjour gav974
il n’y a pas de mea culpa à faire, c’est super sympa de vous occuper de mon problème mais après essai ça ne fonctionne toujours pas chez moi.
- j’ai copier le code ci-dessus, exactement
- j’ai crée un snippet avec Code Snippets dans lequel j’ai collé le code copié ci-dessus
- dans une page, avec Elementor, à l’aide du widget « short code », j’ai mis le short code suivant : [my_count_category category_name= » Généralités composites »], Généralités composites étant le nom de la catégorie dont je veux afficher le nombre d’articles.
lorsque je visualise la page j’ai toujours : « Vous avez 0 article(s) dans la catégorie Généralités composites. »
Puisque le code fonctionne bien chez vous je pense que je dois faire une connerie quelque part, mais je ne vois pas où…
fifi
19 mai 2025 à 18 h 37 min #2489080Bonjour,
Puisque le code fonctionne bien chez vous je pense que je dois faire une connerie quelque part, mais je ne vois pas où…
Cela devrait pourtant bien fonctionner. Les articles appartenant à cette catégorie sont bien publiés, pas en brouillon?
20 mai 2025 à 7 h 23 min #2489096Bonjour,
Pour les catégories qui ont un nom avec plusieurs mots, il faut mettre un – (tiret) à la place d’un espace au niveau du shortcode dans votre cas :
[my_count_category category_name= » generalites-composites »]
Pour info, je n’ai jamais utilisé de nom de catégories avec plusieurs mots.
Comme le précise @ferman, la code ne fonctionnera qui si vos articles, ont un statut publié ou rattaché à votre catégorie
Pour le vérifier, aller dans l’onglet article puis sous le titre de la page, vous verrez le nombre d’articles publiés. (voir l’img associé ).
Fichiers joints :
Vous devez être connecté pour voir les fichiers joints.20 mai 2025 à 10 h 04 min #2489105Pour info: Le problème n’est sans doute pas avec le nom de la catégorie. Aussi surprenant que ça puisse paraître le code fonctionne même si le nom de la catégorie contient des espaces, des accents et même des caractères spéciaux.
20 mai 2025 à 10 h 33 min #2489107Bonjour @ferman,
Alors, il faut creuser, vers les articles afin de savoir si celle-ci ont un statut publié.
20 mai 2025 à 11 h 04 min #2489108Bonjour,
Alors, il faut creuser,
Oui mais je trouve qu’on a déjà pas mal creusé. Les trois codes (shortcode avec attributs, variante sans attributs et get_terms) fonctionnent parfaitement chez moi quel que soit le nom de la catégorie et cela doit être pareil pour vous. Je ne vois pas trop bien ce qu’il reste à regarder. Une différence est que pour fifidibosco le shortcode est mis en place avec Elementor (pas pour moi qui n’utilise pas Elementor) mais je ne vois pas ce que cela peut changer.
-
Cette réponse a été modifiée le il y a 2 semaines et 4 jours par
ferman.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.