在我的 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>

如果产品页面是单个产品页面并且该产品在 Workshop 类别中,我想在 h1 中回显 workshopMusic 也是如此。 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()

    关于php - WooCommerce - 确定当前单个产品页面的产品类别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43261183/

    10-12 00:17
    查看更多