【问题标题】:Add woocommerce product type to body class array将 woocommerce 产品类型添加到正文类数组
【发布时间】:2013-04-19 12:58:30
【问题描述】:

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

body_class();

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

$classes[] = 'simple-product';

然后添加类。我认为这与获取全局值的问题有关。我正在调用 $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;
}

谢谢

【问题讨论】:

    标签: wordpress global woocommerce


    【解决方案1】:

    您是否尝试过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;
    }
    

    【讨论】:

    • 也许类名可以更动态一些?而不是:if ( $product->product_type == 'simple' ) $classes[] = 'simple-product'; - 而不是:$classes[] = $product->product_type.'-product';?
    【解决方案2】:

    在 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-16
      • 2014-09-19
      • 2018-11-04
      相关资源
      最近更新 更多