При изменении заголовка woocommerce первый элемент не меняется

У меня странное поведение, которое я не понимаю

Я изменил хук 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>';
}

Он отлично работает на всех продуктах, кроме первого.

Я также внес аналогичное изменение в другой хук, чтобы превратить миниатюру в фоновое изображение, и это не работает с первым продуктом. Это всегда первый продукт, даже если я изменяю порядок продуктов.

Ниже вы видите скриншот первого ряда продуктов на странице и того, что первый отображается по-другому

Первый продукт отличается

Было бы очень полезно, если кто-то знает эту проблему или может указать мне правильное направление.

большое спасибо
Alex

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector