Как обернуть ul .products .columns в div со своим классом woocommerce?
На странице магазина нужно обернуть вывод товара в div с классом. Если просто добавить div в файлы loop-start.php и loop-and.php, то div появляется на всех страницах, а это плохо. Я попробовал такую конструкцию , но она не помогла.
function woocommerce_product_columns_wrapper() {
if (is_shop()) {
echo '<div class="shop">';
}
}
add_action( 'woocommerce_before_shop_loop', ' woocommerce_product_columns_wrapper'
);
function woocommerce_product_columns_wrapper_after() {
if (is_shop()) {
echo '</div">';
}
}
add_action( 'woocommerce_after_shop_loop', ' woocommerce_product_columns_wrapper_after'
);
Сто я делаю не так?
Ответы (1 шт):
Автор решения: Darth KYL
→ Ссылка
в вашем примере есть лишний пробел в начале название callback функции, поэтому вы не видите обертку
я бы на вашем месте сделал вот так, если вам нужно обернуть только товары
add_filter( 'woocommerce_product_loop_start', 'woocommerce_product_columns_wrapper');
function woocommerce_product_columns_wrapper( $loop_start ) {
return is_shop() ? '<div class="shop">' . $loop_start : $loop_start;
}
add_action( 'woocommerce_product_loop_end', 'woocommerce_product_columns_wrapper_after');
function woocommerce_product_columns_wrapper_after( $loop_end ) {
return is_shop() ? $loop_end . '</div>' : $loop_end;
}
если же вам нужно обернуть весь контент с фильтрами сортировкой и пагинацией то можно это сделать через ваш код только с изменением приоритетов
add_action( 'woocommerce_before_shop_loop', 'woocommerce_product_columns_wrapper', 5 );
function woocommerce_product_columns_wrapper() {
if (is_shop()) {
echo '<div class="shop">';
}
}
add_action( 'woocommerce_after_shop_loop', 'woocommerce_product_columns_wrapper_after', 15 );
function woocommerce_product_columns_wrapper_after() {
if (is_shop()) {
echo '</div">';
}
}