Я хочу добавить слаг категории продукта в класс тела на страницах архива категории продукта.
Вот пример того, что я хотел бы (URL примера страницы категории продукта):
https://example.com/product-category/canon/
… Так я бы хотел «Канон» в классе тела.
Ваша ссылка на пример не работает; тем не менее, WooCommerce уже должен добавлять определенный класс терминов на страницы вашей категории: что-то вроде archive tax-product_cat term-{slug} term-{id}
на страницу категории товаров. Взяв примерную ссылку и предположив, что термин ID 7
(например), класс body будет включать:
tax-product_cat term-7 term-canon
Так что если вам нужно получить к нему доступ через CSS / jQuery / что угодно, вы можете использовать селектор body.term-canon
,
Вы можете использовать слаг страницы в теле класса, см. Этот код
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' );
для этого вам нужно добавить приведенный ниже код в ваш файл 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;
}
это добавит слаг категории в конце класса тела.
Даже если 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 вашей активной дочерней темы (или активной темы). Проверено и работает.