WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Параметры WP_Query

Здравствуйте,
я использую плагин ACF pro для создания произвольных полей на странице Спектакля
У меня есть два блока мета-полей:

Один просто повторитель, состоящий из записей "должность" и "id_сотрудника" (Сотрудники постановочной бригады).

Второй блок - тоже повторитель, но внутри него есть вложенный повторитель, состоящий из id_сотрудников другого типа (Артистов).

С прямой адресацией к элементам проблем нет.
Что для простого блока типа "повторитель":

$rows = get_field('band');
	if($rows){
		foreach($rows as $row) {
			print "<div class='role-grid-box-item'>";
			if (!($row['creator_txt'])) {
				if( ($var = get_field('rank', $row['creator'])) ) $var=$var."<br>";
				print "<a href='".get_permalink($row['creator'])."' target='_BLANK' >".
				"<strong>".$row['prof']."</strong><br>".$var.
				get_the_title($row['creator'])."</a>";

			}
			else {
				print  $row['prof']."<br>".
				$row['creator_txt'];
			}
			print "</div>";
		}
	}

Что для блока повторитель с вложением:

    $rows = get_field('roles');
	if($rows){
		foreach($rows as $row) {
			print "<div class='role-grid-box-item'>";
			print "<strong>"$row['role']."</strong><br>";
			foreach( $row['artists'] as $art ){
				print "<a href='".get_permalink($art['artist'])."' target='_BLANK' >".
					get_field('rank', $art['artist'])."".
					get_the_title($art['artist'])."</a><br>";

			}
			print "</div>";
		}
	}

Прямая адресация к элементу вложенного повторителя выглядит так:

print $row['artists'][0]['artist']; // id страницы артиста, привязанного к роли

Такая адресация удобна для странице, где эти поля определены, но я испытываю затруднения, как составить запрос WP_Query для того, чтобы отобрать все спектакли, где используется id артиста (вложенный повторитель). Просто не знаю, как правильно составить запрос.
Помогите пожалуйста.

Заметки к вопросу:
Myakish 3 мес назад

Решил вопрос следующим образом:

  1. В запросе указал только значения поля без указания ключа - так и не понял как правильно. И как ни странно - работает. Значение поля - id 'artist'
  2. Саму выборку обрабатываю через вложенные циклы. Видимо по другому никак. Привожу пример из документации по плагину ACF для работы с полями "повторителя", может кому пригодится:
<?php if( have_rows('repeater_field_name') ): ?>

	<ul>

	<?php while( have_rows('repeater_field_name') ): the_row(); ?>

		<li>sub_field_1 = <?php the_sub_field('sub_field_1'); ?>, sub_field_2 = <?php the_sub_field('sub_field_2'); ?>, etc</li>

		<?php 

		$sub_field_3 = get_sub_field('sub_field_3'); 

		// сделать что-то с переменной $sub_field_3

		?>

	<?php endwhile; ?>

	</ul>

<?php endif; ?>

Код взят с сайта ACF на русском, страница примеры кода

0
Myakish
3 месяца назад 6

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация