1. ホーム
  2. php

[解決済み] タイトルフックを変更すると、最初の項目が変更されない。

2022-02-10 14:25:21

質問

理解できない奇妙な動作があります。

woocommerce_shop_loop_item_title フックを変更して、商品のタイトルにリンクを追加しています。これはfunctions.php内の私のコードです。

// Add HREF TO TITLE
function abChangeProductsTitleHook(){
    remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10 );
    add_action('woocommerce_shop_loop_item_title', 'abChangeProductsTitle', 10 );
}
add_action( 'woocommerce_shop_loop_item_title', 'abChangeProductsTitleHook' );
function abChangeProductsTitle() {
    echo '<h2 class="woocommerce-loop-product_title"><a href="'.get_the_permalink().'">' . get_the_title() . '</a></h2>';
}

最初の製品以外では完全に動作しています。

また、サムネイル画像を背景画像に変更するために別のフックにも同様の変更を加えましたが、こちらも最初の商品ではうまくいきません。商品の順番を変えても常に1番目の商品になってしまいます。

下のスクリーンショットは、ページの最初の商品列のもので、最初の商品が異なる形で表示されていることがわかります。

それは、誰かがその問題を知っているか、または正しい方向に私を指すことができれば本当に助かります。

ありがとうございました。 アレックス

解決方法は?

を削除して追加している方法です。 woocommerce_shop_loop_item_title が問題です。この方法で試してみてください。

remove_action( 'woocommerce_shop_loop_item_title','woocommerce_template_loop_product_title', 10 );
add_action('woocommerce_shop_loop_item_title', 'abChangeProductsTitle', 10 );
function abChangeProductsTitle() {
    echo '<h2 class="woocommerce-loop-product_title"><a href="'.get_the_permalink().'">' . get_the_title() . '</a></h2>';
}