【发布时间】:2018-10-29 21:18:11
【问题描述】:
在 Woocommerce 中,我正在尝试过滤位于 wc-template-functions.php 核心代码中的 wc_get_product_cat_class() 函数的输出:
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 ) );
}
我需要它来将 cat slug 作为一个类添加到类别页面上的每个 li 标记中。
当我直接编辑文件并将其添加到函数时它工作正常:
$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在这里没有意义。
欢迎任何帮助。
【问题讨论】:
-
你可以从你的过滤函数中访问
$category参数,它被传递(见here)增加你接受的参数并在你的函数中获得$category参数
标签: php wordpress woocommerce hook-woocommerce custom-taxonomy