Фильтр статей по категориям wordpress без плагинов
Часто бывает необходимо не выводить все категории на главную страницу блога wordpress. Нужно фильтровать записи по принадлежности к категории. Здесь вариантов два, первый фильтр — не выводить записи некоторых категорий, а второй выводить записи только избранных категорий. Я думаю чаще приходится сталкиваться с первым фильтром. Я захотел отфильтровать записи определенной категории, заполненной только справочной информацией. Зачем создавать кучу коротких постов на главной странице, к тому же в этой куче будут ещё и тематические статьи, а для них у меня категорий побольше, чем категорий со справочной информацией. Так что отфильтрую записи одной категории из вывода на главной странице и всё.
Есть замечательная функция в wordpress, которая изменяет стандартный запрос при прохождении циклом по базе. Это функция query_posts(), она принимает очень много параметров, влияющих на запрос, и как следствие вывод записей на страницу. Мне нужно указать категорию которую не нужно выводить. Для этих целей есть несколько вариантов:
- параметр category__not_in — записи, не входящие в указанную категорию;
- параметр cat — id категории.
Выберу ту что короче.
Запишем функцию для нашего случая:
query_posts( array( ‘cat’ => -1));
Указывать значения рубрик, которые не будут входить в вывод нужно через запятую. Располагаете этот код выше цикла wordpress на главной странице «index.php» и записи из указанных категорий выводится не будут.
<?php query_posts( array( 'cat' => -1, -5 ) );?> <?php while ( have_posts() ) : the_post(); ?>
Этот код отфильтрует категории 1 и 5, которые не будут выводится на главной странице.
Запускаем, проверяем.
Все работает — записи указанных категорий в выводе не обнаружены. Но есть одно НО!
Внизу страницы под записями находится постраничная навигация. В админ-панели можно ограничить количество выводимых записей на странице, и чтоб увидеть остальные записи придется воспользоваться этой навигацией. Только не вышло у меня этого сделать, кликаю по ссылкам навигации, а статьи все те-же. Начался квест, в финале которого приз — решение проблемы с постраничной навигацией. Я сразу не догадался от чего такое поведение. Часа два поисков и оказывается этот самый вызов функции query_posts(), причина такого поведения постраничной навигации. Но мне очень нужно убрать из вывода категории со справочной информацией и … Квест продолжается.
Долго ли, коротко ли…. Думал уже отложить поиск решения. Как зацепился за параметр ‘paged’. Он отвечает за постраничную навигацию и для нормализации работы навигации нужно задать этому параметру значение get_query_var( ‘paged’ ), что указывает на текущий номер страницы в постраничной навигации.
В итоге получаем функцию, которая переопределяет 2 параметра:
<?php query_posts( array( 'cat' => -1, 'paged' => get_query_var('paged') ) );?> <?php while ( have_posts() ) : the_post(); ?>
Закрываем для вывода первую категорию и задаем параметр ‘paged’.
Теперь код работает, как хотелось.
Рубрики
Фильтр по типу
Рубрики
- Авто
- Адаптивные
- Бизнес
- Детские и образование
- Дом и семья
- Женские и шопинг
- Здоровье и медицина
- Игры и развлечения
- Интерьер
- Искусство и творчество
- Красота и мода
- Кулинария
- Блог и люди
- Минимализм
- Музыка
- Недвижимость и стройка
- Новостные
- Портал
- Природа и животные
- Спорт
- Технологии
- Туризм и путешествия
- Универсальные
- Финансы
Лучшие шаблоны для Wordpress
Лучшие комментарии
Последние темы и подборки
- Лучшие плагины WordPress для каталога продуктов
- 15 лучших свадебных шаблонов WordPress 2025 года
- Лучшие плагины внутренней перелинковки для WordPress
- 13+ шаблонов WooCommerce для магазинa товаров ручной работы на WordPress
- Lifeline Hospital – бесплатный шаблон WordPress для клиники и больницы
- Лучшие WordPress темы для сайта продажи и аренды велосипедов, велоспорта
- OTT TV Shows – бесплатный шаблон WordPress для ТВ-шоу
- Подборка лучших тем WordPress для сайта детского лагеря
- 6 лучших конструкторов тем WordPress на 2025 год (в сравнении)
- Многоцелевая тема Flash – скачать бесплатно и на русском языке
Лучшие комментарии