как упорядочить поиск по ключевым словам? - PullRequest
0 голосов
/ 28 января 2019

Во время поиска по мета-ключу 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 - lorem ipsum

пример данных2: hr_archive_title - HR-fråga 1223 - Rekryteringskonsult i Norge - Rekryteringsbonus;hr_archive_question - Харет детализировать процесс перекодирования? på något vis?

пример data3: hr_archive_title - HR-fråga 1167 - Linkedin Recruiter;hr_archive_question - Harvet de påverk er er rekryteringsprocess på något vis?

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

Отображение результатов одного мета-ключа и порядка по другому мета-ключу

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

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

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

1 Ответ

0 голосов
/ 28 января 2019

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

$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

...