在WooCommerce中将产品属性术语名称添加到body类

时间:2017-09-15 16:45:27

标签: php wordpress woocommerce product hook-woocommerce

我希望根据产品的属性添加一个body类,例如颜色,所以如果产品颜色是红色,我希望添加类' red'到身体标签。

我会用什么钩子来做这个?

1 个答案:

答案 0 :(得分:0)

这可以通过以下方式连接在 body_class 过滤器钩子中的自定义函数来完成:

add_filter( 'body_class', function( $classes ) {
    if( ! is_product() ) return $classes;

    global $post;
    $custom_classes = array();

    $product = wc_get_product( $post->ID );

    foreach( $product->get_attributes() as $taxonomy => $wc_attribute ){
        if( $taxonomy == 'pa_color' )
            $custom_classes = $wc_attribute->get_slugs();

    return array_merge( $classes, $custom_classes );
} );

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

此代码在Woocommerce 3+上进行测试并正常运行。