首页 文章

如果Woocommerce中的产品类别中有描述,则仅显示h2标签

提问于
浏览
3

我们的Woocommerce产品类别存档页面顶部有一个 <h1> 标记,默认情况下是产品网格 .

现在我们在底部再次添加了一个带有类别名称的 <h2> 标签,在 <h2> 标签下面是该产品类别的描述 .

我在_1757770中设置了这个添加:

<h2 class="cat-desc-title"><?php woocommerce_page_title(); ?></h2>

但是我想知道是否有人知道如果在此产品类别页面上显示说明,则仅显示此方法 .

如何为此写一个 if 语句?

任何帮助深表感谢 .

1 回答

  • 3

    是的,可以在 if 语句中添加一些条件,例如:

    <?php 
            if ( is_product_taxonomy() && 0 === absint( get_query_var( 'paged' ) ) ):
    
            $wp_term_obj = get_queried_object();
    
            if ( $wp_term_obj && ! empty( $wp_term_obj->description ) ):
        ?>
    
            <h2 class="woocommerce-products-header__title page-title"><?php woocommerce_page_title(); ?></h2>
    
        <?php endif; endif; ?>
    

    仅当查询的产品类别(或产品标签)存在描述时,才会显示 <h2> Headers . 这发生在 archive-product.php . 它经过测试和运作 .

    现在,如果您希望专门定位产品类别归档页面(但不是产品标记归档),则将 is_product_taxonomy() 替换为 is_product_category() .


    Alternative Without overriding template files:

    这可以嵌入到钩子函数中,而不是覆盖模板,就像显示的产品类别描述一样,在10之前具有钩子优先级 .

    所以这可以通过以下方式完成:

    add_action( 'woocommerce_archive_description', 'add_h2_title_before_archive_description', 5 );
    function add_h2_title_before_archive_description() {
        if ( is_product_taxonomy() && 0 === absint( get_query_var( 'paged' ) ) ):
            $wp_term_obj = get_queried_object();
    
            if ( $wp_term_obj && ! empty( $wp_term_obj->description ) ):
            ?>
            <h2 class="woocommerce-products-header__title page-title"><?php woocommerce_page_title(); ?></h2>
            <?php
            endif; 
        endif;
    }
    

    代码位于活动子主题(或活动主题)的function.php文件中 .

    经过测试和工作 .

相关问题