web-dev-qa-db-fra.com

Ajouter une portée autour d'un titre de produit dans WooCommerce

Je personnalise un thème personnalisé pour utiliser WooCommerce. L'un des problèmes que j'ai rencontrés est l'ajout d'une balise span autour d'un titre de produit sur la page de produit unique. J'ai compris comment ajouter un filtre à la méthode the_title mais malheureusement, cette méthode est utilisée à d'autres endroits, comme dans la balise alt de product image (qui le casse).

Existe-t-il un moyen de spécifier de ne modifier que the_title lorsqu’il imprime le titre principal de la page au lieu d’être utilisé ailleurs comme un attribut d’image?

Voici ce que j'ai jusqu'à présent:

function my_product_title($title, $id)
{
    if(in_the_loop() && is_product())
    {
        return '<span class="border">FooBar</span>';
    }
    return $title;
}
add_filter( 'the_title', 'my_product_title', 5, 2);

Ne devrait-il pas y avoir un moyen de se connecter au filtre woocommerce_product_title? J'ai essayé de le faire sans succès.

En attendant, je sais que je peux modifier le fichier modèle single-product/title.php mais je préférerais y parvenir avec des actions ou des filtres.

1
BFTrick

Voici comment vous le faites,

Commencez par supprimer l’action titre unique de woocommerce et créez votre propre fonction pour gérer le titre, puis rajoutez-la ensuite à l’aide de la fonction que vous venez de créer.

<?php

remove_action('woocommerce_single_product_summary','woocommerce_template_single_title',5);
add_action('woocommerce_single_product_summary', 'woocommerce_my_single_title',5);

if ( ! function_exists( 'woocommerce_my_single_title' ) ) {
   function woocommerce_my_single_title() {
?>
            <h1 itemprop="name" class="product_title entry-title"><span><?php the_title(); ?></span></h1>
<?php
    }
}

?>
10
nonsensecreativity