Добавить класс тела для страницы архива категории продукта в Woocommerce

Я хочу добавить слаг категории продукта в класс тела на страницах архива категории продукта.

Вот пример того, что я хотел бы (URL примера страницы категории продукта):
https://example.com/product-category/canon/… Так я бы хотел «Канон» в классе тела.

1

Решение

Ваша ссылка на пример не работает; тем не менее, WooCommerce уже должен добавлять определенный класс терминов на страницы вашей категории: что-то вроде archive tax-product_cat term-{slug} term-{id} на страницу категории товаров. Взяв примерную ссылку и предположив, что термин ID 7 (например), класс body будет включать:

tax-product_cat term-7 term-canon

Так что если вам нужно получить к нему доступ через CSS / jQuery / что угодно, вы можете использовать селектор body.term-canon,

2

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

Вы можете использовать слаг страницы в теле класса, см. Этот код

function add_slug_body_class( $classes ) {
global $post;
if ( isset( $post ) ) {
$classes[] = $post->post_type . '-' . $post->post_name;
}
return $classes;
}
add_filter( 'body_class', 'add_slug_body_class' );
0

для этого вам нужно добавить приведенный ниже код в ваш файл functions.php в вашей активированной теме.

add_filter( 'body_class', 'product_cats_css_body_class' );

function product_cats_css_body_class( $classes ){
if( is_archive( 'product-cat' ) )
{
$custom_terms = get_the_terms(0, 'product_cat');
if ($custom_terms) {
foreach ($custom_terms as $custom_term) {
$classes[] = $custom_term->slug;
}
}
}
return $classes;
}

это добавит слаг категории в конце класса тела.

0

Даже если Woocommerce вставлять в качестве класса тела термин продукта категории слизень как term-canon, вы можете легко добавить просто canon используя выделенный WordPress body_class хук действия, с Woocommerce is_product_category() условная функция и WordPress get_queried_object() сюда:

add_filter( 'body_class', 'product_category_slug_to_body_class', 99, 1 );
function product_category_slug_to_body_class( $classes ){
if( is_product_category() ){
$classes[] = get_queried_object()->slug;
}
return $classes;
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

0
По вопросам рекламы [email protected]