Динамическое добавление блоков Meta_query в запрос Wordpress get_posts()Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Динамическое добавление блоков Meta_query в запрос Wordpress get_posts()

Сообщение Anonymous »

Я использую расширенные настраиваемые поля Wordpress и хочу выполнять поиск сообщений на основе этих полей и вводимых пользователем данных. У меня есть четыре поля: начало (дата), конец (дата), этап и тип. Пользователь может выбрать любую комбинацию этих полей для поиска. Я автоматически указываю им дату начала и окончания, если они не выберут одну, на текущий год. В противном случае Stage и Type пусты. У меня возникла проблема с добавлением мета_запросов в общий запрос get_posts.
Я также пробовал использовать array_push().
Запрос Date работает и запрос Stage работает, пока я не попытаюсь добавить тип.
Текущий код должен возвращать два результата, но возвращает только один.
$start = trim($_POST['start']);

// sets default date range to the current year
if (empty($start)) {
$start = 'January 1, ' . date('Y');
}

$end = trim($_POST['end']);
$type = trim($_POST['type']);
$stage = trim($_POST['stage']);

// sets the date range query
$query = array (
'posts_per_page' => 10,
'post_type' => 'quote',
'date_query' => array (
array (
'after' => $start,
'before' => $end,
'inclusive' => true,
)
)
);

$meta_query = array();

if (!empty($stage)) {
$meta_query[] = array(
'key' => 'stage',
'value' => $stage,
'compare' => '='
);
}

if (!empty($type)) {
$meta_query[] = array(
'key' => 'type',
'value' => $type,
'compare' => '='
);
}

if (!empty($meta_query)) {
$meta_query['relation'] = 'AND';
$query['meta_query'] = $meta_query;
}

$posts = get_posts($query);


Подробнее здесь: https://stackoverflow.com/questions/793 ... osts-query
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»