如何在WordPress ACF关联产品循环中排除私密产品?
解决方案
要实现保留ACF选择器中的私密产品,但前端仅显示公开产品的需求,只需在输出产品前增加帖子状态判断即可,具体修改如下:
修改后的完整代码
<?php while ( have_rows( 'similar_product' ) ) { the_row(); $products = get_sub_field( 'select_product' ); if ( $products !== false ) { // 新增:过滤私密状态的产品 if ( get_post_status( $products->ID ) !== 'private' ) { ?> <a href="<?php echo get_the_permalink( $products->ID ) ?>"> <?php echo get_the_post_thumbnail( $products->ID, 'medium' ); ?> </a> <?php } } } echo "</div>"; ?> </div> <?php } ?>
关键改动说明
- 新增
get_post_status( $products->ID ) !== 'private'条件:利用WordPress内置函数get_post_status()获取产品状态,仅当状态不为private(私密)时才渲染前端内容 - 保留ACF字段的选择记录:ACF关联字段的存储值不会被修改,当私密产品后续改为公开状态后,会自动在前端显示,无需重新配置选择项
内容的提问来源于stack exchange,提问作者matgrez
相关产品推荐
相关产品推荐

