
🔒 Як приховати категорію в WordPress: 4 способи крок за кроком
Головна сторінка WordPress за замовчуванням виводить усе підряд: записи з кожної створеної рубрики змішуються в загальну стрічку. Для блогу це нормально. Але якщо ви запускаєте інтернет-магазин, портфоліо чи корпоративний сайт, частина категорій на головній просто не потрібна.
Гірше того: пошукові роботи індексують усе, включно зі службовими та чорновими рубриками. Результат, дублі сторінок у видачі, розмитий індекс і падіння позицій. А відвідувач, який натрапив на закритий розділ, отримує порожню сторінку замість контенту.
На щастя, приховати категорію в WordPress можна за 5-10 хвилин, і для цього не потрібен розробник. Нижче, чотири робочі способи: від плагіна у два кліки до акуратного коду в functions.php. Обирайте під своє завдання.
💡 Швидкий огляд:
- Встановити Ultimate Category Excluder і позначити категорії для приховування.
- Налаштувати WP Categories Widget для вибіркового приховування в сайдбарі.
- Додати хук pre_get_posts у functions.php і виключити рубрику за ID.
- Використати плагін Members зі сніпетом для приховування за ролями користувачів.
Навіщо взагалі приховувати категорії?
WordPress не розрізняє «публічну» та «технічну» рубрику. Усе, що ви створили в «Записи → Рубрики», автоматично потрапляє до головної стрічки й архівів. В одних випадках це зручно, в інших, створює проблеми:
- Службові рубрики (наприклад, «Чернетки» або «Для редакторів») індексуються і потрапляють у пошук.
- Категорії зі старим або неактуальним контентом розмивають враження від сайту.
- Закриті розділи (преміум-статті, матеріали для клієнтів) стають видимими для всіх відвідувачів.
Важливий момент: не намагайтеся вирішити проблему через CSS, display: none приховує категорію візуально, але пошуковики все одно бачать контент і можуть розцінити це як клоакінг. Штраф від Google у таких випадках майже гарантований. Правильний шлях, виключити рубрику на рівні запитів до бази даних, а не маскувати її стилями.
Спосіб 1. Ultimate Category Excluder, приховати категорію за хвилину
Найпростіший і найнадійніший метод, плагін Ultimate Category Excluder. Станом на червень 2026 року він має 50 000+ активних установок, рейтинг 4,2/5 і сумісність із WordPress 6.5+. Розробник оновлює плагін стабільно, останній реліз вийшов у грудні 2025.

Порядок дій:
- У панелі WordPress перейдіть до Плагіни → Додати новий.
- У пошуку наберіть «Ultimate Category Excluder», натисніть Встановити, а потім Активувати.
- Після активації в меню «Налаштування» з’явиться пункт Category Exclusion, зайдіть туди.
- Позначте галочками категорії, які потрібно приховати з головної, архівів, RSS-стрічки та пошуку.
- Натисніть Оновити.

Готово. Відкрийте сайт у режимі інкогніто й переконайтеся, що записи з позначених рубрик зникли з головної. Плагін працює на рівні WP_Query, він модифікує запит до бази даних, а не приховує блоки через CSS. Тому для SEO це повністю безпечно.
Плюси: нуль коду, підходить новачкам, вибіркове виключення (головна, архіви, RSS, окремо). Мінуси: якщо вам потрібно приховати категорію лише в певному віджеті, цей плагін не помічник, для цього є точніший інструмент.
Спосіб 2. WP Categories Widget, приховати категорію у віджеті
Якщо завдання вужче, прибрати конкретну рубрику із сайдбара чи футера, а не з усього сайту,, беріть WP Categories Widget. Станом на лютий 2026 року плагін має версію 2.8.1, повну сумісність з актуальним WordPress і 3 000+ активних установок.
Що він уміє:
- Показувати категорії будь-якої таксономії (не лише стандартні рубрики, а й мітки, довільні таксономії).
- Приховувати заголовок віджета.
- Вмикати або вимикати лічильник записів біля кожної категорії.
- Вибірково показувати або приховувати будь-які рубрики прямо з налаштувань віджета.
Як використовувати:
- Встановіть і активуйте плагін через Плагіни → Додати новий.
- Перейдіть до Зовнішній вигляд → Віджети.
- Знайдіть віджет «WP Categories Widget» і перетягніть його в потрібну область (сайдбар, футер).

- У налаштуваннях віджета задайте заголовок, за бажанням приховайте його. У випадному списку «Показати» виберіть варіант All Categories або вкажіть конкретні рубрики, які мають відображатися.

- Збережіть зміни.
Усе, що не потрапило до списку «показуваних», автоматично приховано з цього віджета. Зверніть увагу: плагін керує видимістю лише всередині свого віджета. На головну стрічку й архіви він не впливає, для цього повертайтеся до способу 1.
Спосіб 3. Хук pre_get_posts, приховати категорію через код
Якщо ви не хочете ставити зайвий плагін заради однієї функції, можна обійтися парою рядків у functions.php. Цей метод змінює головний цикл WordPress до виконання запиту, категорія виключається на рівні бази даних, а не маскується.
Важливо: перед редагуванням functions.php зробіть повний бекап сайту. Помилка в цьому файлі покладе весь сайт, відновити його без резервної копії буде непросто.
Ось робочий сніпет. Він використовує хук pre_get_posts і вказує, яку категорію виключити з головної сторінки:
1 /** 2 * Исключает заданную категорию с главной страницы. 3 * Замените -5 на ID вашей категории (со знаком минус). 4 */ 5 function sdstudio_exclude_category_from_home( $query ) { 6 if ( ! is_admin() && $query->is_home() && $query->is_main_query() ) { 7 $query->set( 'cat', '-5' ); 8 } 9 return $query; 10 } 11 add_action( 'pre_get_posts', 'sdstudio_exclude_category_from_home' );
У рядку 'cat', '-5' число 5, ідентифікатор категорії, яку потрібно приховати. Знак мінуса означає «виключити». Як дізнатися ID потрібної рубрики:
- У панелі WordPress відкрийте Записи → Рубрики.
- Наведіть курсор на назву категорії.
- Унизу екрана (у рядку стану браузера) з’явиться URL виду
...taxonomy=category&tag_ID=6, число післяtag_ID=і є ID.

На скриншоті ID категорії «Країни» дорівнює 6. Підставте своє число, збережіть файл, і записи з цієї рубрики зникнуть із головної.
Де розмістити код:
- Через FTP: підключіться до сервера, перейдіть до
/wp-content/themes/ваша-тема/, завантажтеfunctions.php, додайте код у кінець файлу (перед?>, якщо він є) і завантажте назад. - Через адмінку: відкрийте Зовнішній вигляд → Редактор тем, виберіть активну тему, знайдіть
functions.phpу правій колонці, вставте код і натисніть «Оновити файл».

Деякі хостинг-провайдери закривають доступ до редактора тем з міркувань безпеки. У цьому разі тільки FTP або повертайтеся до плагіна зі способу 1, він вирішить задачу без доступу до файлів.
Що поліпшено порівняно з оригінальним рецептом зі старих посібників: додано перевірку ! is_admin() (щоб не ламати адмінку) і $query->is_main_query() (щоб не зачепити вторинні запити віджетів і меню). Без цих перевірок код може поламати фільтрацію в адмінці або зламати вивід меню, перевірено на практиці.
Спосіб 4. Приховування категорій за ролями користувачів
Уявіть ситуацію: у вас є преміум-статті, доступні лише платним передплатникам. Або внутрішня документація для співробітників. Або закритий розділ для оптових клієнтів. Звичайні методи приховують категорію від усіх, а тут потрібно, щоб адмін і привілейовані користувачі її бачили, а гість і базовий передплатник, ні.
Раніше для цього завдання використовували плагін CaPa Protect, але його видалено з репозиторію WordPress. На зміну прийшла потужніша зв'язка: плагін Members (300 000+ встановлень, рейтинг 4,7/5, версія 3.2.22 на червень 2026) і невеликий код.

Алгоритм:
- Встановіть та активуйте Members через «Плагіни → Додати новий».
- Перейдіть у Користувачі → Ролі. Створіть роль, наприклад «Преміум-передплатник», або використовуйте наявні.
- Призначте потрібним користувачам цю роль.
- Додайте у
functions.phpсніпет, який перевіряє роль поточного користувача та виключає категорію для всіх, крім дозволених:
1 /** 2 * Скрывает категорию с ID 5 от всех, кроме администраторов 3 * и пользователей с ролью premium_subscriber. 4 */ 5 function sdstudio_hide_category_by_role( $query ) { 6 if ( is_admin() || ! $query->is_main_query() ) { 7 return $query; 8 } 9 10 $restricted_cat_id = 5; // замените на ID вашей категории 11 12 if ( current_user_can( 'administrator' ) 13 || current_user_can( 'premium_subscriber' ) ) { 14 return $query; 15 } 16 17 $query->set( 'cat', '-' . $restricted_cat_id ); 18 return $query; 19 } 20 add_action( 'pre_get_posts', 'sdstudio_hide_category_by_role' );
Як це працює: функція перевіряє роль поточного користувача через current_user_can(). Адміністратори та преміум-передплатники проходять повз фільтр, для них категорія видима. Всі інші отримують модифікований запит із виключенням рубрики. Той самий хук pre_get_posts, але з прив'язкою до прав, а не до сторінки.
Плюс Members у тому, що це не просто «милиця для категорій», а повноцінний редактор ролей і прав. Після встановлення ви зможете керувати видимістю будь-яких елементів сайту: блоків Gutenberg, сторінок, пунктів меню, все через ролі.
Відеоінструкція
Подивіться наочний посібник з усіх чотирьох способів, від встановлення плагіна до редагування коду:
⁉️🤔 Часті запитання
Чому не можна просто приховати категорію через CSS?
display: noneприбирає блок візуально, але пошукові роботи все одно читають контент. Google розцінює таку розбіжність між видимим та індексованим вмістом як спробу маніпуляції (клоакінг). Санкція, ручне зниження позицій або вилучення сторінок з індексу. Правильне рішення, виключення на рівніWP_Query, а не CSS.
Як приховати категорію не лише з головної, а й з RSS-стрічки?
Ultimate Category Excluder (спосіб 1) вміє це з коробки. У налаштуваннях плагіна на вкладці «Category Exclusion» позначте потрібні категорії та поставте галочку навпроти «RSS Feeds». Якщо працюєте через код (спосіб 3), замініть умову
$query->is_home()на$query->is_home() || $query->is_feed(), категорія зникне і зі стрічки.
Що буде з SEO після приховування категорії?
Якщо ви приховали рубрику коректно (через плагін або
pre_get_posts), сторінки самої категорії та її записи залишаються доступними за прямими URL та індексуються. Змінюється лише головна сторінка й архіви, дублі зникають, а корисний контент залишається в індексі. Для певності після змін надішліть карту сайту в Google Search Console на переобхід.
Чи можна приховати категорію від певного користувача, а не від ролі?
Штатних засобів WordPress для цього немає. Спосіб 4 розрахований саме на ролі — це архітектурне обмеження системи прав. Як обхідний шлях можна створити окрему роль під конкретного користувача через Members і застосувати код зі способу 4. Технічно це два кліки в інтерфейсі плагіна.
Плагін чи код, що обрати для довгострокової підтримки сайту?
Залежить від кількості правок. Одне приховування однієї категорії, код у
functions.php(спосіб 3) легший і не додає зайвого навантаження. Кілька категорій із різними умовами (головна, RSS, пошук), Ultimate Category Excluder (спосіб 1) зручніший в управлінні. Головне правило: не ставте плагін заради однієї галочки, яку можна закрити трьома рядками коду.
Що обрати під вашу задачу
Чотири способи закривають усі реальні сценарії. Зорієнтуватися допоможе проста матриця:
- Потрібно швидко і без коду → Ultimate Category Excluder. Пара кліків, результат одразу, підходить для більшості типових сайтів.
- Категорія заважає лише в сайдбарі → WP Categories Widget. Точкове рішення без побічних ефектів.
- На сайті й так мінімум плагінів, хочеться легкості → хук
pre_get_postsуfunctions.php. Три рядки PHP, нуль зайвого коду. - Контент із розмежуванням доступу за ролями → Members + сніпет зі способу 4. Гнучка система прав, яка знадобиться і для інших задач.
Спробуйте спосіб, який ближчий до вашої ситуації. Якщо щось піде не так, повертайтеся до бекапу (ви ж його зробили?) і пробуйте наступний. А в коментарях розкажіть, який метод спрацював у вас і для якого саме проєкту ви приховували категорії.



