将 woocommerce 产品类型添加到 body 类数组

pha*_*ist 2 wordpress global woocommerce

我正在尝试将 Woocommerce 产品类型添加到在 header.php 中调用的 Wordpress body 标签类数组中

body_class();
Run Code Online (Sandbox Code Playgroud)

我在functions.php中有以下函数,但它没有添加类。如果我删除条件并只有

$classes[] = 'simple-product';
Run Code Online (Sandbox Code Playgroud)

然后添加类。我认为这与获取全局值的问题有关。我正在调用 $woocommerce、$post 和 $product 全局变量,因为我不确定我真正需要哪个。

//Add Woocommerce body classes
add_filter('body_class','ttm_woocommerce_body_classes');
function ttm_woocommerce_body_classes($classes){
    global $woocommerce, $post, $product;
    if ( $product->product_type == 'simple' ) $classes[] = 'simple-product';
    return $classes;
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Chr*_*rga 5

您是否尝试var_dump($product)查看该对象中存在什么(如果有)?

根据codex,您可能必须使用 自己填充它$post->ID,如下所示:

//Add Woocommerce body classes
add_filter('body_class','ttm_woocommerce_body_classes');
function ttm_woocommerce_body_classes($classes){
    global $post;
    $product = get_product( $post->ID );
    if ( $product->product_type == 'simple' ) $classes[] = 'simple-product';
    return $classes;
}
Run Code Online (Sandbox Code Playgroud)