Время от времени возникает необходимость изменить стандартное отображение записей на главной странице, и эти изменения могут быть разнообразными. По умолчанию WordPress представляет собой список всех опубликованных материалов в порядке их создания, при этом новые посты отображаются первыми. Часто требуется исключить из этого списка определённые записи. Например, на сайте-портфолио может быть нужно продемонстрировать только определённую часть контента.
Чтобы реализовать фильтрацию записей на главной странице, необходимо использовать хуки и фильтры, предоставляемые WordPress. Один из способов сделать это — использовать фильтр pre_get_posts. С его помощью можно модифицировать главный запрос перед его выполнением.
Пример добавления фильтра на главной странице:
function custom_filter_posts( $query ) {
if ( is_home() && $query->is_main_query() ) {
// Исключаем записи с определённой категорией
$query->set( 'tax_query', array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => 'exclude-category-slug',
'operator' => 'NOT IN',
),
));
}
}
add_action( 'pre_get_posts', 'custom_filter_posts' );
В этом примере мы исключаем записи из определённой категории, заменяя exclude-category-slug на нужный вам слаг категории. Этот код нужно добавить в файл functions.php вашей темы.
Кроме того, можно добавить параметры сортировки, изменить количество отображаемых записей и использовать метаполя для более тонкой настройки фильтрации. Таким образом, вы можете создать уникальный интерфейс для посетителей вашего сайта, предоставляя им только ту информацию, которая действительно важна.
Как фильтровать вывод записей?
Существует два подхода для решения этой задачи:
- редактирование файлов шаблонов темы вручную;
- установка специального плагина.

Рассмотрим второй вариант, который является более простым. С помощью бесплатного плагина можно легко решить эту проблему.
На странице настроек плагина представлен единственный блок с перечнем всех категорий, зарегистрированных на сайте. Если вы хотите исключить записи из определённой категории, просто снимите отметку и нажмите кнопку Сохранить изменения.
Обратите внимание, что вы также можете отфильтровать записи по тегам, датам или другим параметрам, если это поддерживается выбранным плагином. Это может значительно упростить навигацию по контенту, особенно на крупных сайтах с большим количеством записей.
Программирование фильтров с помощью плагинов
Установка плагинов для управления отображением контента позволяет добиться нужных результатов без глубоких знаний кода. Например, плагин FacetWP предоставляет мощные инструменты для создания кастомных фильтров. С его помощью можно легко настраивать условия для отображения определённых записей, таких как категории, теги или пользовательские поля. Просто установите плагин, добавьте необходимые элементы в интерфейсе, а затем используйте шорткоды для встраивания на нужные страницы.
Важно помнить, что настраиваемые фильтры могут значительно повысить удобство навигации для пользователей.
Для более опытных разработчиков подойдут плагины, позволяющие работать с хуками и API, такие как Advanced Custom Fields и Custom Post Type UI. Эти инструменты позволяют создавать сложные структуры данных, добавлять метаполя и изменять поведение системы. Например, для создания кастомного фильтра записей на основе метаданных можно использовать следующий код:
function custom_filter_function( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$meta_query = array(
array(
'key' => 'my_custom_field',
'value' => 'my_value',
'compare' => '='
)
);
$query->set( 'meta_query', $meta_query );
}
}
add_action( 'pre_get_posts', 'custom_filter_function' );
Такие подходы расширяют возможности управления контентом и делают сайт более интерактивным и удобным для пользователей.