Wordpress Woocommerce高级自定义字段True / False始终返回NULL

时间:2018-09-17 08:58:57

标签: php wordpress woocommerce advanced-custom-fields

我已经创建了advanced-custom-field类型的true/false。目的是显示或不显示我的woocommerce商店的某些产品。由于某种原因,结果始终为NULL,但我不知道为什么。我还坐在该字段仅显示在商店页面上(该页面使用archive-products.php)

这是我尝试的方法:

if ( woocommerce_product_loop() ) {

woocommerce_product_loop_start();

if ( wc_get_loop_prop( 'total' ) ) {
    while ( have_posts() ) {
        the_post();

        do_action( 'woocommerce_shop_loop' );

        wc_get_template_part( 'content', 'product' );
    }
}
if(get_field('show_tab')) : ?>
<li class="extra">';
   ...show some stuff
</li>
<?php endif;
echo '</ul>';

} else {

  do_action( 'woocommerce_no_products_found' );
}

就像上面提到的,“真/假”字段始终返回NULL

有人可以帮我吗

2 个答案:

答案 0 :(得分:0)

您的get_field('show_tab')在产品循环之外。将其放入while循环中。

答案 1 :(得分:0)

您在循环之外使用get_field(),因此还需要为其提供尝试获取该字段的帖子的ID,例如:

if(get_field('show_tab', $post_id)) : ?>

话虽如此,您的代码看起来有些混乱,所以我假设您是要使其包含在循环中。如果是这样,请将其全部向上移动,也许在do_action( 'woocommerce_shop_loop' );之后,则无需添加ID,它应该可以正常工作。