我已经创建了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
有人可以帮我吗
答案 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,它应该可以正常工作。