我正在尝试将Woocommerce产品类型添加到带有
的header.php中调用的Wordpress正文标记类数组中body_class();
我在functions.php中有以下功能,但它没有添加类。如果我删除条件并且只有
$classes[] = 'simple-product';
然后添加课程。我认为这与获得全球价值的问题有关。我打电话给$ woocommerce,$ post和$ product globals,因为我不确定我真正需要它。
//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;
}
由于
答案 0 :(得分:4)
您是否尝试过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;
}
答案 1 :(得分:0)
在woocommerce页面中,在您的网站正文标记中添加product_type名称。首先,您需要将此页面作为产品页面。
使用get_product(),您的页面正在使用woocommerce功能。
这是添加在body标签中添加的所有product_type名称的代码。
将此代码添加到您的激活主题文件夹:functions.php
add_filter('body_class','obw_woocommerce_body_classes'); function obw_woocommerce_body_classes( $classes ) { global $woocommerce, $post, $product; $product = get_product( $post->ID ); $product_type = $product->product_type; if ( $product->product_type == 'external' ) $classes[] = 'external-product'; if ( $product->product_type == 'grouped' ) $classes[] = 'grouped-product'; if ( $product->product_type == 'simple' ) $classes[] = 'simple-product'; if ( $product->product_type == 'variable' ) $classes[] = 'variable-product'; return $classes; }