Как изменить порядок вывода записей на странице поиска WordPress?
function custom_search_query($query) {
if (!$query->is_admin && $query->is_search) {
$query->set('orderby', 'term_taxonomy_id');
$query->set('order', 'ASC');
}
return $query;
}
add_filter('pre_get_posts','custom_search_query');
Я пробовала использовать функцию pre_get_posts и задавать свои параметры для orderby и order, но это не дало желаемого результата.
Буду очень благодарна, если кто-то с опытом работы с WordPress сможет помочь мне разобраться с этой проблемой и поделиться рабочим кодом или подсказкой, как правильно изменить порядок вывода записей на странице поиска.
Заранее большое спасибо! Ответы:
- попробуйте использовать параметр "meta_query" вместо "orderby" и "order". Это позволит вам отсортировать записи по определенному значению метаполя.
Для изменения порядка вывода записей на странице поиска в WordPress, вы можете использовать функцию pre_get_posts и задать свои параметры для orderby и order.
Однако, в вашем примере кода есть некоторая ошибка. Вместо 'term_taxonomy_id', который обозначает идентификатор таксономии, вы должны использовать 'category' для сортировки по категории. Также, чтобы указать определенную категорию, вам нужно добавить параметр 'category_name' со значением названия категории.
Вот исправленный код, который поможет вам достичь желаемого результата:
function custom_search_query($query) {
if (!$query->is_admin && $query->is_search) {
$query->set('orderby', 'category');
$query->set('order', 'ASC');
$query->set('category_name', 'название вашей категории');
}
return $query;
}
add_filter('pre_get_posts','custom_search_query');
Пожалуйста, убедитесь, что вы заменили 'название вашей категории' на актуальное название категории, в которой у вас должны выводиться записи вначале.
Если у вас все еще возникают проблемы или у вас есть дополнительные вопросы, не стесняйтесь задавать. Буду рада помочь!