Как всегда сначала отображать конкретный пост из результатов поиска - PullRequest
0 голосов
/ 15 февраля 2019

Я создал поисковый фильтр, который отображает сообщения в случайном порядке, и мне интересно, как я могу всегда отображать определенный элемент сообщения в первой позиции результатов поиска и нормально отображать остальные элементы.

Спасибодля вашей помощи @dassoun, вот запрос:

$taxonomies = array('recipe_type', 'product_category', 'recipe_category', 'recipe_event', 'recipe_diet');
foreach ($taxonomies as $taxonomy) {
    $taxonomies_taxonomy[$taxonomy] = get_taxonomy($taxonomy);
    $taxonomies_terms[$taxonomy] = get_terms(
        array(
        'taxonomy'      => $taxonomy,
        'hide_empty'    => false,
        'meta_key'      => 'filter_order',
        'orderby'       => 'meta_value_num',
        'order'         => 'ASC'
        )
    );
    $taxonomies_selected[$taxonomy] = (get_query_var($taxonomy)) ? get_query_var($taxonomy) : '';
}

1 Ответ

0 голосов
/ 15 февраля 2019

Думаю, вам стоит взглянуть на оператор "UNION".

из https://www.w3schools.com/sql/sql_union.asp: Оператор UNION используется для объединения результирующего набора из двух или более операторов SELECT.

  • Каждый оператор SELECT в UNION должен иметь одинаковое количество столбцов
  • Столбцы также должны иметь одинаковые типы данных
  • Столбцы в каждом операторе SELECT также должны находиться втот же порядок

Идея будет такой:

select * from post where (hastobetop = 1 or id = myid or whatever)
UNION
yourfilteredrequest

Возможно, вам придется исключить строки, возвращенные первым запросом, из отфильтрованного.

[править] Извините, я не видел, что это было специально для WordPress [/ edit]

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