php-WooCommerce-确定当前单个产品页面的产品类别

在我的header.php中,我想根据页面的类别添加标题.

我当前的代码如下所示:

<h1 class="page-title"><?php

    if (is_category('english') || has_category('english',$post->ID)) {

        echo "music in the world of noise";

    } elseif (is_category('marathi') || has_category('marathi',$post->ID)) {

        echo "क्षितिज जसे दिसते";

    } elseif (is_category('happenings') || has_category('happenings',$post->ID)) {

        echo "Happenings";

    } elseif (is_product() && is_product_category( 'music' ) ) {

        echo "music";

    } elseif (is_product_category( 'album' )) {

        echo "albums";

    } elseif ( is_product() && is_product_category( 'workshop' ) ) {
        echo "Workshop";
    } elseif( is_product() && has_term( 'workshop' ) ) {
        echo "Workshop";
    } else {
        the_title();
    }

    ?>

</h1>

如果产品页面是单个产品页面并且该产品属于工作坊类别,我想在h1中回显Workshop.音乐也一样. is_product_category仅在类别页面上有效,而在单个产品页面上无效.

如何确定单个产品的类别并回显相关文本.除woocommerce页面外,其他if语句(is_category(‘english’)has_category())是否有效?

解决方法:

关于WooCommerce类别,您的代码中存在一些错误:

>函数is_category()和has_category()不适用于WooCommerce产品类别(WooCommerce产品类别是自定义分类法“ product_cat”).
>有条件的is_product()&& is_product_category()不能与&&一起使用,因为is_product()将定位单个产品页面,而is_product_category()将定位产品类别档案页面.

要在单个产品页面中定位产品类别,您需要将Wordpress条件函数has_term()与’product_cat’分类一起使用.如果它们使用相同的标题,那么您还可以根据自己的条件同时定位产品类别归档页面.

因此,您的代码(针对WooCommerce产品类别)将类似于:

<h1 class="page-title"><?php

//      ... / ...

    if ( is_product() && has_term( 'music', 'product_cat' ) || is_product_category( 'music' ) ) {
        echo "Music";
    } elseif ( is_product() && has_term( 'album', 'product_cat' ) || is_product_category( 'album' ) ) {
        echo "Albums";
    } elseif( is_product() && has_term( 'workshop', 'product_cat' ) || is_product_category( 'workshop' ) ) {
        echo "Workshop";
    } else {
        the_title();
    }
?></h1>

如果不需要同时定位产品类别归档页面,则必须在每个条件语句中删除||. is_product_category()…

上一篇:Woocommerce MySQL更新特定类别产品的价格


下一篇:PHP-WooCommerce 3.0:找不到与管理员创建的后端订单相对应的钩子