как заказать поиск wordpress по значениям мета-ключа?

Во время поиска по 2 мета-ключам (скажем, acf hr_archive_title и acf hr_archive_question) я хочу перечислить пост в следующем порядке.

  1. первым предпочтением является сообщение с искомым текстом, найденным в hr_archive_title
  2. затем сообщения с искомым текстом, найденным в hr_archive_question

пример data1: hr_archive_title - HR-fråga 1432 - Rekryteringsbonus; hr_archive_question - лорем ipsum

пример data2: hr_archive_title - HR-fråga 1223 - Rekryteringskonsult i Norge - Rekryteringsbonus; hr_archive_question - Что нужно сделать, чтобы подтвердить процесс повторного выбора?

пример data3: hr_archive_title — HR-fråga 1167 — Linkedin Recruiter; hr_archive_question - Что нужно сделать, чтобы подтвердить процесс повторного выбора?

Теперь, когда я ищу «Rekrytering», список должен быть следующим: data1, data2, data3. Это возможно? Пробовал следующее, но безрезультатно. Листинг идет как смешанный список.

Показать результаты одного мета-ключа и заказать по другому мета-ключу

https://www.billerickson.net/wp-query-sort-by-meta/

https://wordpress.stackexchange.com/questions/218709/order-by-custom-field-value

Любая помощь/предложения приветствуются.


person samjhana joshi    schedule 28.01.2019    source источник


Ответы (1)


Вы можете попробовать что-то вроде:

$q = new WP_Query( array(
    'meta_query' => array(
        'relation' => 'AND',
        'title_clause' => array(
            'key' => 'hr_archive_title',
            'compare' => 'EXISTS',
        ),
        'question_clause' => array(
            'key' => 'hr_archive_question',
            'compare' => 'EXISTS',
        ), 
    ),
    'orderby' => 'title_clause'
) );

Это вытянет сообщения, у которых установлены оба мета-ключа, но отсортирует их по мета-ключу hr_archive_title. meta_query — это массив метапредложений, каждое предложение — это ассоциативный массив с ключом-идентификатором. Затем вы устанавливаете параметр orderby для прослушивания метапредложения title_clause.

Этот точный запрос может не дать вам того, что вы хотите, но поиграйте с идеей «пунктов» для вашего meta_query, и вы сможете достичь того, что пытаетесь сделать.

Идея взята с: https://wordpress.stackexchange.com/a/246358/70417

person Ty Bailey    schedule 28.01.2019
comment
это не то, что я хочу точно. Я хочу искать слово либо в заголовке, либо в вопросе (не в ОБОИХ заголовке и вопросе). Таким образом, в моем случае отношение meta_query будет «ИЛИ». Скажем, когда я ищу определенное слово, список выглядит следующим образом. title1 title2 question1 title3 title4 Но мне нравится список как title1 title2 title3 title4 question1 Как я могу этого добиться? - person samjhana joshi; 29.01.2019