Сейчас я борюсь с поиском Wordpress по умолчанию, так как я хочу установить несколько пользовательских правил для результатов поиска. Если на этот вопрос ответили раньше, извините, потому что я не смог его найти.
Я бы хотел, чтобы все посты в блоге, кроме тех, которые находятся в подкатегории "архив", отображались в результатах поиска.
Мне бы хотелось, чтобы в результатах поиска отображался только определенный c набор страниц, а другие нет.
Пока что Мне удалось заархивировать только одну из целей, но не в комбинации.
Чтобы включить все записи в блоге, я использовал следующие функции: php:
function js_search_filter( $query ) {
if (!$query->is_admin && $query->is_search) {
/* Shows only type post */
$query->set('post_type', 'post');
/* Includes category "blog"(2) and excludes sub-category "archive" (2881) */
$query->set('cat','2,-2881');
}
return $query;
}
add_action( 'pre_get_posts', 'js_search_filter' );
Чтобы включить определенные c сообщения, я использовал это:
function js_search_filter( $query ) {
if (!$query->is_admin && $query->is_search) {
/* Show posts and pages*/
$query->set('post_type', 'page');
/* Include certain page IDs */
$query->set('post__in', array (100,4580,3596,2623,4860));
}
return $query;
}
add_action( 'pre_get_posts', 'js_search_filter' );
Теперь, как только я попытаюсь объединить эти вещи, go сбоку. Я использую $query->set('post_type', array('post','page'));
, чтобы оба типа отображали uo
Если я сейчас добавлю $query->set('post__in', array (100,4580,3596,2623,4860));
, отобразятся только страницы в массиве, а теперь и сообщения в блогах.
Куда я иду не так? Могу ли я добавить идентификаторы категорий в массив post__in
? Нужно ли мне удалять $query->set('cat','2,-2881');
и использовать post__in
и post__not_in
с соответствующими идентификаторами вместо этого?
Я с нетерпением жду любой помощи!