我们的Woocommerce产品类别存档页面顶部有<h1>
标记,默认情况下是产品网格。
现在,我们在底部再次添加了一个带有类别名称的<h2>
标记,<h2>
标记下面是该产品类别的说明。
我已经在archive-product.php
中添加了这个:
<h2 class="cat-desc-title"><?php woocommerce_page_title(); ?></h2>
然而,我想知道是否有人知道如果此产品类别页面上显示说明,则只能显示此信息。
如何为此编写if
语句?
非常感谢任何帮助。
答案 0 :(得分:2)
是的,可以在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>
标题。这是archive-product.php
。经过测试和运作。
现在,如果您要专门定位产品类别档案页面(但不是产品标记档案),则会将is_product_taxonomy()
替换为is_product_category()
。
备选方案无需覆盖模板文件:
这可以嵌入到钩子函数中,而不是覆盖模板,就像显示的产品类别描述一样,钩子优先级在
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文件中。
经过测试和工作。