Добавьте термин slug как класс в тег div категории продуктов в Woocommerce. - PullRequest
0 голосов
/ 19 мая 2018

В Woocommerce я пытаюсь отфильтровать вывод функции wc_get_product_cat_class(), расположенной в wc-template-functions.php коде ядра:

function wc_get_product_cat_class( $class = '', $category = null ) {
    $classes   = is_array( $class ) ? $class : array_map( 'trim', explode( ' ', $class ) );
    $classes[] = 'product-category';
    $classes[] = 'product';
    $classes[] = wc_get_loop_class();
    $classes   = apply_filters( 'product_cat_class', $classes, $class, $category );

    return array_unique( array_filter( $classes ) );
}

Мне нужно добавить слаг кота в качестве класса для каждого пользователя.тег на странице категории.

Это прекрасно работает, когда я редактирую файл напрямую и добавляю это к функции:

$classes[] = $category->slug;

У меня тогда есть <li class="product-category whatever-cat-slug product">

Ноочевидно, я пытаюсь найти лучший способ добавить его в файл функций моей темы.

Я попробовал это, но безуспешно:

add_filter( 'product_cat_class' , 'add_class_to_category_list_element');
function add_class_to_category_list_element($classes) {
$classes[] = $category->slug;
return $classes;
} 

Потому что $category здесь не имеет смысла.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 20 мая 2018

Хук фильтра product_cat_class управляет 3 аргументами $classes, $class и $category, поэтому ваш код немного неполон.Также вы должны быть уверены, что $category является определенным объектом, прежде чем пытаться получить пулю на нем.

Попробуйте вместо этого:

add_filter( 'product_cat_class' , 'add_class_to_category_list_element', 10, 3 );
function add_class_to_category_list_element( $classes, $class, $category ) {
    if( is_object( $category ) )
        $classes[] = $category->slug;

    return $classes;
}

Код входит в файл function.php вашегоАктивная детская тема (или активная тема).Проверено и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...