@lexstile

Как исключить из выборки посты в WP_Query?

Запрос:
$posts= new WP_Query( array(
	'post_type' => 'audio',
	'order' => 'ASC',
	'posts_per_page' => -1,
	'meta_query' => array(
		array(
			'key' => 'genre',
			'value' => 'pop',
		)
	),
));


Пример, есть:
Пост №1
Пост №2
Пост №3
Пост №4

Пост №1 связан с постами №2 и №3 (Проблема в том, что связи устанавливаются в посте №1)
5d9f38ad2bad0412396079.png
После запроса должны остаться следующие посты: №1 и №4
  • Вопрос задан
  • 456 просмотров
Решения вопроса 1
@HectoR_UA
Получи все внутренние связи
global $wpdb;
$connections = $wpdb->get_col("SELECT meta_value FROM $wpdb->postmeta WHERE meta_key='connections'");

Должно вернуть массив с айдишниками постов выбранных в селекте. Если там какая-то другая структура - преобразуй его в массив если необходимо. В итоге должно получиться что-то вроде
$formatted_conns = array(10,23,50,47);
Ну а потом просто исключить этот массив из выборки
$query = new WP_Query(array(
...
'post__not_in' => $formatted_conns,
...
));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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