web-dev-qa-db-ja.com

WooCommerceの商品タイトルの周りにスパンを追加する

WooCommerceを使用するようにカスタムテーマをカスタマイズしています。私が遭遇した問題の1つは単一の商品ページの商品タイトルの周りにspanタグを追加することです。私はthe_titleメソッドにフィルタを追加する方法を考え出しましたが、残念ながらそのメソッドは製品イメージのaltタグのような他の場所で使用されています(それが壊れています)。

画像属性のように他の場所で使用されるのではなく、メインタイトルをページに印刷するときにのみthe_titleを変更するように指定する方法はありますか?

これが私がこれまでに持っているものです:

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

woocommerce_product_titleフィルタに接続する方法はないでしょうか。私はうまく行かないようにしました。

当面のところ、私はsingle-product/title.phpテンプレートファイルを修正することができることを知っていますが、私はむしろアクションまたはフィルタでこれを達成したいと思います。

1
BFTrick

これがあなたのやり方です。

最初にwoocommerce単一タイトルアクションを削除し、タイトルを処理するための独自の関数を作成し、後で新しく作成した関数を使用してアクションを追加します。

<?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