嵌套循环中的条件Wordpress和ACF关系查找

时间:2019-05-09 01:47:46

标签: wordpress conditional nested-loops advanced-custom-fields

我有WP_query查找产品。

'<?php 
  $args = array(
  'post_type' => 'products',
  'posts_per_page' => -1 ,
  'order' => 'ASC',
  'orderby' => 'menu_order',      
  );
  $products = new WP_Query( $args );?>
  <?php if ( $products->have_posts() ) : ?>
          <!-- layout stuff -->
  <?php while ( $products->have_posts() ) : $products->the_post(); ?>
          <!-- layout stuff -->'

在产品循环中,get_posts提取CPT帖子列表。

'<?php 
 $serviced_ids = get_field('serviced');
 $serviced = get_posts(array(
  'post_type' => 'services',
  'posts_per_page' => -1 
 ));
 ?>
 <?php if( $serviced ): ?>
    <!-- layout stuff -->
 <?php foreach( $serviced as $service ): ?>'

在每个CPT帖子旁边,它会查看该产品是否存在ACF关系。如果是,则显示“是”,否则显示“否”。

'<?php 
  if( !empty($serviced_ids) && is_array($serviced_ids) && 
  in_array($serviced->ID, $serviced_ids) ): ?>
      Yes
  <?php else: ?>
      No
  <?php endif; ?>  '

到目前为止一切都很好...

然后,如果CPT ID等于50,我想在ELSE输出中添加一个条件元素。我无法使其正常工作。

我尝试过

'<?php else: ?>
   <?php if($products->ID = 50): ?>
     <?php echo $something; ?>
   <?php endif; ?>'

我对PHP的流利程度不是很好,无法超越。

我正在寻找的输出是:

产品名称

  • 服务名称:是
  • 服务名称:是
  • 服务名称:否
  • 服务名称:$ something
  • 服务名称:是

产品名称

  • 服务名称:否
  • 服务名称:否
  • 服务名称:否
  • 服务名称:$ something
  • 服务名称:否

1 个答案:

答案 0 :(得分:0)

感谢Pendo使用get_the_ID()向正确的方向前进。我需要的代码行是:

'<?php if( get_the_ID() === 50) : ?>'