- WordPress :5.5
- Statut : résolu
- Ce sujet contient 9 réponses, 2 participants et a été mis à jour pour la dernière fois par Zelph14, le il y a 3 années et 11 mois.
-
AuteurMessages
-
24 décembre 2020 à 11 h 16 min #2364108
Ma configuration WP actuelle :
– Version de WordPress : 5.5.3
– Version de PHP/MySQL : 7.3.23 / 5.5.5– Thème utilisé : Flatsome Child
– Extensions en place : AddToAny Share Buttons (1.7.42), Akismet Anti-Spam (4.1.7), Classic Editor (1.6), Conditionally display featured image on singular pages and posts (2.4.0), Customer Reviews for WooCommerce (3.135), Easy Table of Contents (2.0.11), , Forget About Shortcode Buttons (2.1.2), Forum_wordpress_fr (4.2), Inline Spoilers (1.5.1), Insert Headers and Footers (1.4.6), Jetpack by WordPress.com (9.1), Kadence WooCommerce Email Designer (1.4.3), Loco Translate (2.4.4), , Orders Tracking for WooCommerce (1.1.8.4), Redirection (4.9.2), Visual Portfolio, Posts & Image Gallery (2.9.0), WooCommerce (4.7.0), WooCommerce Cart Abandonment Recovery (1.2.8), WooCommerce Stripe Gateway (4.5.5), WPForms Lite (1.6.3.1), WP Rocket (3.7.5), Yoast SEO (15.3)
– Nom de l’hébergeur : Apache
Bonjour,
J’avais déjà fait un post concernant la même demande il y a quelques temps.
Aujourd’hui, j’ai créé un nouveau site et je rencontre le même problème, mais la solution évoquée dans mon sujet précédant ne convient pas.
J’utilise WooCommerce sous Flatsome et j’aimerais modifier les balises HTML des produits (product loop title) dans les pages de catégories produits.
Elles sont configurées pour être simplement des paragraphes (voir screenshot 1), et j’aimerais les mettre en H2 pour favoriser mon SEO.
J’ai ajouté le code suivant à mon fichier functions.php :
function woocommerce_template_loop_product_title() {
echo '<h2 class="woocommerce-loop-product__title">' . get_the_title() . '</h2>';
}J’avais bien mon H2, mais le titre du produit n’était plus cliquable.
Cela fait 2 jours que je parcours le web anglais et français à la recherche d’une solution, mais sans succès.
Merci par avance aux personnes qui sauront m’aider et joyeuses fêtes de fin d’année.
Zelph14
Fichiers joints :
Vous devez être connecté pour voir les fichiers joints.24 décembre 2020 à 17 h 14 min #2364137j’ai rencontré le même problème avec le thème OceanWP
mais cette fois ci avec la page boutique ou les titres des produits
n’étaientt pas en H2.Le problème avec votre fonction associé au bon hook dans functions.php
c’est que la balise se retrouve encadré par la balise<h2> et c’est Pourquoi
le lien n’est pas cliquableAlors que l’on devrait avoir:
<a href="http://nomdedomaine.fr/etc...">
<h2>
Mon Titre H2
</h2>
</a>J’avais le même problème pour ma page boutique avec ce genre de code
la solution a été de modifier directement dans le thème enfant le fichier
owp-archive-product.php propre au thème OceanWP qui personnalise
hautement WooCommerce.mon code php était donc le suivant:
pour le titre du produit on ajoute la référence par une balise H2 et on remplace la ligne concerné par:
echo '<a href="' . esc_url( get_the_permalink() ) . '"><h2>' . esc_html( get_the_title() ) . '</h2></a>';A vous de trouver le fichier a modifier dans votre thème enfant car je ne connais pas Flatsome.
Je vous souhaite de Joyeuses Fêtes.
24 décembre 2020 à 17 h 24 min #2364139Ou bien essayer de remplacer dans votre fichier functions.php votre ligne de code
directement par celle-ci:echo '<a href="' . esc_url( get_the_permalink() ) . '"><h2 class="woocommerce-loop-product__title">' . esc_html( get_the_title() ) . '</h2></a>';
26 décembre 2020 à 18 h 19 min #2364183Bonjour,
Merci pour votre aide.
J’ai réussi à résoudre mon problème avec ce code :
function woocommerce_template_loop_product_title() {
echo '<h2 class="h4"><a href="'.get_the_permalink().'">' . get_the_title() . '</a></h2>';
}Sauriez-vous si je peux exclure ces modifications de certaines parties de mon site ? J’utilise des blocks auxquels sont associés des ID, et j’aimerais exclure les modifications précédentes pour certains blocks id.
Merci d’avance et joyeuses fêtes.
27 décembre 2020 à 11 h 12 min #2364188Bonjour,
Si ces blocks ne font pas partie de la même page ou s’applique votre code
alors vous pouvez palier au problème par un test conditionnel selon la référence du codex WordPress:
https://developer.wordpress.org/reference/functions/is_page/if (!is_page('nom de ma page a exclure')){
function woocommerce_template_loop_product_title() {
echo '<h2 class="h4"><a href="'.get_the_permalink().'">' . get_the_title() . '</a></h2>';
}
}
//pour plusieurs pages
if (!is_page(array('Mom 1ère page a exclure','nom 2ème page',))){
function woocommerce_template_loop_product_title() {
echo '<h2 class="h4"><a href="'.get_the_permalink().'">' . get_the_title() . '</a></h2>';
}
}27 décembre 2020 à 11 h 13 min #2364189Plus précisément c’est bien sur le Titre de la page ou ID de la page
que vous pouvez utiliser dans le test conditionnel.27 décembre 2020 à 11 h 20 min #2364190Sinon vous avez les balises conditionnelles propre a WooCommerce:
https://docs.woocommerce.com/document/conditional-tags/27 décembre 2020 à 14 h 55 min #2364193Bonjour,
Merci pour votre aide.
J’ai réussi à créer le code suivant :
function woocommerce_template_loop_product_title() {
$id = get_the_ID();
if (strpos($id,'166') !== false) {
echo '<p class="h4"><a href="'.get_the_permalink().'">' . get_the_title() . '</a></p>';
}
else {
echo '<h2 class="h4"><a href="'.get_the_permalink().'">' . get_the_title() . '</a></h2>';
}
}Cependant, je pense que je me suis mal exprimé. Je souhaiterais que le titre de mon produit soit en h2 partout, sauf dans le menu, où je voudrais qu’il soit en p.
Avec le code précédant, j’ai réussi à exclure un produit dont l’identifiant est 166. Il possède donc les balises p. Sauf que ce produit se trouve aussi dans la page de catégorie, en plus de sa localisation dans le menu. De ce fait, dans la page de catégorie, je me retrouve avec un produit encadré par des balises paragraphe. Ce n’est pas ce que je souhaite.
Donc, plutôt que d’exclure l’ID du produit, j’aimerais exprimer « si cet ID de produit se trouve dans le menu, alors lui assigner les balises p. Sinon, lui assigner les balises h2« .
J’espère vraiment pouvoir parvenir à une solution.
Je vous remercie par avance.
Cordialement
28 décembre 2020 à 11 h 13 min #2364254Bonjour,
Si je reprends l’énoncé de votre problème:
j’aimerais modifier les balises HTML des produits (product loop title) dans les pages de catégories produits.Dans ce cas utiliser une balise conditionnelle de WooCommerce
pour ne mettre le titre H2 que sur les pages d’archives de catégories:function woocommerce_template_loop_product_title() {
if( is_product_category() ) {
echo '<h2 class="h4"><a href="'.get_the_permalink().'">' . get_the_title() . '</a></h2>';
}
}28 décembre 2020 à 14 h 27 min #2364276ça fonctionne, un grand merci à vous pour toutes ces précieuses informations !
C’est top !
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.