类别为空时显示数据

时间:2017-03-06 作者:Randomer11

我有以下代码将数据插入到产品类别的底部。它工作得很好,但是它只在产品实际在类别中时显示,我也希望它显示在空类别中。我做错了什么?

    add_action( \'woocommerce_after_shop_loop\', \'wpm_product_cat_archive_add_meta\' );
function wpm_product_cat_archive_add_meta() {
  $t_id = get_queried_object()->term_id;
  $term_meta = get_option( "taxonomy_$t_id" );
  $term_meta_content = $term_meta[\'custom_term_meta\'];
  if ( $term_meta_content != \'\' ) {
    echo \'<h2 style="text-align:center; font-weight:bold;">Local info</h2><div class="term-description"><p>\';
      echo apply_filters( \'the_content\', $term_meta_content );
    echo \'</p></div>\';
  }
}

1 个回复
最合适的回答,由SO网友:Faisal Alvi 整理而成

您已使用woocommerce_after_shop_loop 动作钩,在以下条件下:

<?php if ( have_posts() ) : ?>

您应该使用woocommerce_after_main_content 以显示您的数据。因为它超出了这个条件。即使该类别中没有产品,您的数据也会显示出来。

UPDATE:

您可以向自定义函数添加条件,以便仅当页面为类别时才显示数据。

Read this 关于如何使用WooCommerce的条件:

一些来自那里:

is_product_category()

查看产品类别存档时返回true。

is_product_category( \'shirts\' )

当显示“衬衫”类别的产品类别页面时。

is_product_category( array( \'shirts\', \'games\' ) )

当显示“衬衫”或“游戏”类别的产品类别页面时。

因此,您可以按如下方式更新代码:

if ( $term_meta_content != \'\' && is_product_category()) {
    echo \'<h2 style="text-align:center; font-weight:bold;">Local info</h2><div class="term-description"><p>\';
      echo apply_filters( \'the_content\', $term_meta_content );
    echo \'</p></div>\';
  }