Я столкнулся с проблемой фильтрации страниц для отображения в запросе WP.
Я использую справочник по запросам Codex WP для настраиваемых полей с помощью ACF (плагин Advanced Custom Fields, но это не имеет значения, потому что он работает так же, как параметры настраиваемого поля WP) для фильтрации страниц.
В параграфе «Обработка нескольких настраиваемых полей» Кодекс содержит пример с 2 условия. Мы можем использовать отношение ИЛИ или И. Я работаю для обоих, пока у вас не будет третьего условия (массива).
Они используют пример:
'relation' => 'OR',
array(
'key' => 'color',
'value' => 'blue',
'compare' => 'NOT LIKE'
),
array(
'key' => 'price',
'value' => array( 20, 100 ),
'type' => 'numeric',
'compare' => 'BETWEEN'
)
Он имеет только 2 массива. Когда ставлю 3-е, ничего не показывает. В режиме отладки вижу ошибку:
WordPress database error: [Lost connection to MySQL server during query]
Когда я использую AND, это работает, но мне нужно использовать OR. К сожалению, это приводит к отключению MySQL.
Я пробовал запросить у phpMySQL тот же запрос, что и у WP. Это вызывает проблему - phpMyAdmin говорит то же самое:
Lost connection
Есть идеи?
Может быть, мне стоит попробовать другой подход к фильтрации? (может быть, мне следует использовать таксономию?)
Вот код, который я использую:
$query_array = array('relation' => 'OR');
array_push($query_array,
array(
'key' => 'filter1',
'value' => 'value1',
'compare' => 'LIKE'
),
array(
'key' => 'filter1',
'value' => 'value2',
'compare' => 'LIKE'
),
array(
'key' => 'filter1',
'value' => 'value3',
'compare' => 'LIKE'
)
);
$args = array(
'order' => $order_array,
'meta_key' => $meta_key,
'orderby' => $orderby,
'post_type' => 'page',
'paged' => $paged,
'post__in' => $postIDs,
'posts_per_page' => 12,
'paged' => get_query_var('paged'),
'meta_query' => $query_array
);
query_posts($args);
?>
(переменные для $args, конечно, установлены)
Я не знаю, почему я не могу используйте
'compare' => '='
но, наверное, именно поэтому я не могу использовать:
$query_array = array('relation' => 'OR');
array_push($query_array,
array(
'key' => 'filter1',
'value' => array('value1', 'value2', 'value3'),
'compare' => 'IN'
)
);
Подробнее здесь: https://stackoverflow.com/questions/233 ... -filtering
WordPress WP Query и фильтрация настраиваемых полей ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Мета-запрос Wordpress для извлечения сообщений с пустым метазначением для настраиваемых полей
Anonymous » » в форуме Php - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Добавьте значение расширенных настраиваемых полей в настраиваемый столбец в WordPress
Anonymous » » в форуме Php - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Anonymous
-