@lexstile

Как вывести два одинаковых поля разных типов постов внутри детальной страницы (single.php)?

Есть базовая сущность post, внутри него через ACF можно добавить фотографии (repeat из файлов).
Есть сущность фотоальбомы, в каждому посту можно прикрепить фотоальбом (внутри такое же поле - repeat из файлов), точнее связать по id.

Внутри детальной страницы поста, я получаю id прикрепленной галереи и далее вывожу.

Проблема в том, что если я вывожу фото из поста и фото из прикрепленной галереи (другой сущности) происходит магия - выводятся только последнее,
а при первом выводе у первых выводится предупреждение:
Warning: Illegal offset type in isset or empty in acf

при повторном обновлении страницы ошибка пропадает и эти фото уже не выводятся ни в каком случае, даже после открепления второй галереи.
Структура следующая:
1. Основной цикл WP
2. get_template_part('template', 'photo'); (фото, прикрепленные к посту | код из темплейта ниже)
3. wp_reset_postdata();
4. Далее внешняя галерея:
$photogallery = new WP_Query(array(
						'p' => $photogallery_id,
						'post_type' => 'photo',
					));
					while ($photogallery->have_posts()) : $photogallery->the_post();
						get_template_part('template', 'photo');
					endwhile;
					wp_reset_query();

5. template-photo.php
<?if( have_rows('photogallery') ):?>
	<div id="fotoalbum" class="col-md-12 small-col">
		<div class="fotorama">
			<?
				while ( have_rows('photogallery') ) : the_row();
					$img = get_sub_field('photo');
					?>
						<img src="<?=$img['url'];?>">
					<?
				endwhile;
			?>
		</div>
	</div>
<?endif;?>
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
@weart
А, судя по всему вам поможет вот это
Или, что проще, не выносить в отдельный файл повторителя, а сделать все здесь и в коде прописать для if и while

if( have_rows('photogallery'), $photogallery_id )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы