Добавить класс тела для страницы архива категории продукта в Woocommerce - PullRequest
0 голосов
/ 04 сентября 2018

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

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

Ответы [ 4 ]

0 голосов
/ 04 сентября 2018

Даже если Woocommerce встраивает в качестве класса тела термин «категория продукта» как term-canon, вы можете легко добавить всего canon с помощью выделенного WordPress body_class action hook, с 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 голосов
/ 04 сентября 2018

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

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 голосов
/ 04 сентября 2018

для этого вам нужно добавить приведенный ниже код в ваш файл 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 голосов
/ 04 сентября 2018

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

tax-product_cat term-7 term-canon

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

...