[Résolu] Changer les balises HTML du « Product loop title » (Créer un compte)

  • WordPress :5.5
  • Statut : résolu
10 sujets de 1 à 10 (sur un total de 10)
  • Auteur
    Messages
  • #2364108
    Zelph14
    Participant
    Initié WordPress
    23 contributions

    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.
    #2364137
    Rock4Temps
    Participant
    Maître WordPress
    1137 contributions
    #2364139
    Rock4Temps
    Participant
    Maître WordPress
    1137 contributions

    Ou 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>';

    #2364183
    Zelph14
    Participant
    Initié WordPress
    23 contributions

    Bonjour,

    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.

    #2364188
    Rock4Temps
    Participant
    Maître WordPress
    1137 contributions

    Bonjour,

    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>';
    }

    }

     

     

    #2364189
    Rock4Temps
    Participant
    Maître WordPress
    1137 contributions

    Plus 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.

    #2364190
    Rock4Temps
    Participant
    Maître WordPress
    1137 contributions

    Sinon vous avez les balises conditionnelles propre a WooCommerce:
    https://docs.woocommerce.com/document/conditional-tags/

    #2364193
    Zelph14
    Participant
    Initié WordPress
    23 contributions

    Bonjour,

    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

    #2364254
    Rock4Temps
    Participant
    Maître WordPress
    1137 contributions

    Bonjour,

    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>';

    }
    }

    #2364276
    Zelph14
    Participant
    Initié WordPress
    23 contributions

    ça fonctionne, un grand merci à vous pour toutes ces précieuses informations !

    C’est top !

10 sujets de 1 à 10 (sur un total de 10)
  • Vous devez être connecté pour répondre à ce sujet.