Wordpress условно во вложенном цикле и поиске отношений ACF - PullRequest
0 голосов
/ 09 мая 2019

У меня есть 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; ?>  '

Пока все хорошо ...

Затем я хочу добавить условный элемент в вывод ELSE, еслиCPT ID равен 50. Я не могу заставить это работать.

Я пробовал

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

Моя беглость с PHP не так уж велика и не может пройти через это.

Вывод, который я ищу:

НАИМЕНОВАНИЕ ПРОДУКТА

  • Название услуги: Да
  • Название услуги: Да
  • Имя службы: нет
  • Имя службы: $ что-то еще
  • Имя службы: Да

НАИМЕНОВАНИЕ ПРОДУКТА

  • Имя службы: Нет
  • Имя службы: нет
  • Имя службы: нет
  • Имя службы: $ что-то еще
  • Имя службы: нет

1 Ответ

0 голосов
/ 09 мая 2019

Спасибо Пендо за то, что он направил меня в правильном направлении с помощью get_the_ID (). Мне нужна была строка кода:

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