Определение правильного WP-запроса и мета-запроса - PullRequest
0 голосов
/ 09 ноября 2011

У меня есть список пользовательских типов сообщений, и я пытаюсь создать форму поиска поверх него.Форма поиска будет просто выдвигать URL-запросы, которые будут перехвачены на одной и той же странице, и в зависимости от этих запросов (таких как name = "..", order = ".." и т. Д.) Будет представлен список пользовательских типов записей.эти характеристики.

Я особенно застрял в реализации аргументов для WP_Query, которые позволят мне искать метаданные для каждого пользовательского типа записи.Вот структура моей строки $ args (как вызывается print_r - это не будет отображать точный синтаксис, который я использовал, так как он смешан с довольно небольшим количеством логики, но это дает хорошее представление о том, как интерпретируются мои аргументы):

[post_type] => obituary
[post_per_page] => 25
[meta_query] => Array
    (
        [relation] => OR
        [0] => Array
            (
                [meta_key] => last_name
                [meta_value] => Green
            )

        [1] => Array
            (
                [meta_key] => first_name
                [meta_value] => Green
            )

    )

Если я удалю массив ключей [meta_query] [0] (то есть массив, определяющий значение, которое будет выглядеть как last_name (следовательно, будет выглядеть только под одним ключом метаданных), тогда запрос будет работать нормально. IМысль о добавлении ключа отношения и значения ИЛИ, чтобы можно было найти мета-значение, заключается либо в мета-ключах ИМЯ_Последнего_ИЛИ, но, похоже, это не сработает, запрос по-прежнему возвращает полный список пользовательских типов записей.

Поскольку я новичок в этом, есть ли что-то вопиющее, что я упускаю? Я просмотрел документы, которые мог найти, и это, имхо, должно сработать.

Что вы думаете?

Редактировать: Исправление к вышесказанному: поиск только по одному мета-ключу будет работать, только если он определен вне мета-запроса.

1 Ответ

0 голосов
/ 09 ноября 2011

Разобрался. Правильная структура выглядит следующим образом:

(
    [post_type] => obituary
    [post_per_page] => 25
    [meta_query] => Array
        (
            [relation] => OR
            [0] => Array
                (
                    [key] => last_name
                    [value] => Green
                    [compare] => LIKE
                )

            [1] => Array
                (
                    [mkey] => first_name
                    [value] => Green
                    [compare] => LIKE
                )

        )

)

Основное отличие состоит в том, что meta_key и meta_value называются ключом и значением в массиве meta_query.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...