
🔗 Як додати посилання на головну в меню WordPress
Меню навігації без посилання на головну, як вхідні двері без ручки. Відвідувач заходить на внутрішню сторінку через пошук, читає матеріал... і не розуміє, куди натиснути, щоб потрапити на головну. Логотип у хедері рятує не завжди, частина користувачів інстинктивно шукає пункт «Головна» саме в меню.
До версії 3.0 WordPress такої опції в стандартному редакторі меню не було, доводилося або правити код, або додавати довільне посилання вручну. Зараз усе простіше: пара кліків, і домашнє посилання на місці. А якщо ви розробник або кастомізуєте тему, є фільтр wp_nav_menu_items, який вирішує завдання однією функцією.
Нижче, обидва способи: візуальний для звичайного користувача та програмний для тих, хто працює з кодом. Плюс розберемо, коли посилання потрібно оновлювати і що робити, якщо воно раптом зникло.
💡 Швидкий огляд:
- Додати домашнє посилання в меню WordPress через адмінпанель за хвилину без плагінів.
- Додати посилання програмно через фільтр wp_nav_menu_items у functions.php теми.
- Перевірити й оновити URL після зміни домену або переходу на HTTPS.
Спосіб 1: через адмінпанель WordPress
Цей метод працює з WordPress 3.0 і вище, тобто на будь-якому сучасному сайті. Жодних плагінів чи правок коду не потрібно.
Зайдіть в адмінпанель і перейдіть за шляхом «Зовнішній вигляд» → «Меню». Ліворуч ви побачите блоки: «Сторінки», «Записи», «Довільні посилання» та інші, залежно від встановлених плагінів і типів контенту.
У блоці «Сторінки» натисніть вкладку «Усі» (або «Переглянути всі» у старих версіях). Найпершим рядком іде сторінка з назвою «Головна» (або «Home», якщо у вас англійська версія). Позначте її галочкою та натисніть кнопку «Додати до меню».

Після додавання пункт з’явиться у структурі меню праворуч. Перетягніть його в потрібну позицію, зазвичай його ставлять першим або останнім елементом. Збережіть меню кнопкою «Зберегти меню», і домашнє посилання запрацює на сайті.
WordPress за замовчуванням використовує для цього пункту пряму URL головної сторінки (наприклад, https://vash-sait.ru/). Це важливо пам’ятати: якщо ви пізніше перенесете сайт на інший домен або перемкнетеся з HTTP на HTTPS, посилання залишиться старим. Доведеться зайти в редактор меню та виправити URL вручну або видалити пункт і додати заново (WordPress сам підставить актуальну адресу).
Спосіб 2: програмне додавання через фільтр
Якщо ви розробляєте кастомну тему або хочете, щоб домашнє посилання додавалося автоматично під час активації теми, використовуйте фільтр wp_nav_menu_items. Він перехоплює HTML-код пунктів меню перед виводом і дає змогу вставити свій елемент.
Код розміщується у functions.php активної теми (або дочірньої теми, щоб не втратити правки під час оновлення). Альтернативний варіант, плагін Code Snippets: ви створюєте сніпет, вставляєте код і активуєте, правки не залежать від теми.

1 /** 2 * Добавляет ссылку «Главная» в основное меню WordPress. 3 * 4 * @param string $items HTML-разметка пунктов меню. 5 * @param object $args Аргументы wp_nav_menu(). 6 * @return string 7 */ 8 function sdstudio_add_menu_home_link( $items, $args ) { 9 // Целевая область меню — замените 'main' на своё значение 10 if ( 'main' !== $args->theme_location ) { 11 return $items; 12 } 13 14 $home_link = sprintf( 15 '<li class="menu-item"><a href="%s">%s</a></li>', 16 esc_url( home_url( '/' ) ), 17 esc_html__( 'Главная', 'textdomain' ) 18 ); 19 20 // Ссылка добавляется первой — поставьте $items . $home_link, если нужна последней 21 $items = $home_link . $items; 22 23 return $items; 24 } 25 add_filter( 'wp_nav_menu_items', 'sdstudio_add_menu_home_link', 10, 2 );
Ключовий параметр, 'main' в умові if. Це slug області меню (theme location), який реєструється функцією register_nav_menu() у темі. Дізнатися свій slug можна у файлі functions.php теми: знайдіть виклик register_nav_menu() або register_nav_menus() і подивіться перший аргумент. Найчастіше це primary або main.
Функція безпечна: esc_url() екранує URL, а esc_html__(), текст посилання з підтримкою перекладу. Якщо ви використовуєте дочірню тему, замініть 'textdomain' на текстовий домен вашої теми.
Після вставки коду оновіть сайт, домашнє посилання з’явиться в меню автоматично. Видаляти його вручну не потрібно: достатньо закоментувати або прибрати add_filter(), і все повернеться до початкового вигляду.
Ситуації, коли посилання потрібно оновлювати
Домашнє посилання, додане через адмінпанель, зберігає жорстку URL, ту, що була в налаштуваннях сайту на момент додавання. Три типові сценарії, коли воно ламається:
Перехід з HTTP на HTTPS. Пункт меню продовжує вести на
http://..., браузери можуть показати попередження про змішаний контент або редирект зламається. Рішення: зайти в редактор меню, видалити старий пункт «Головна» та додати заново, WordPress підставить актуальнуhttps://URL.Зміна домену. У разі перенесення сайту з dev-оточення на продакшн (
staging.site.ru→site.ru) або повного переїзду на новий домен. Пункт меню зберігає стару URL. Рішення те саме: видалити та додати заново.Перенесення з підкаталогу в корінь. Якщо сайт переїжджає з
site.ru/blog/уsite.ru/, усі жорсткі посилання ламаються. Після перенесення пройдіться по ВСІХ пунктах меню, а не лише по домашньому посиланню.
Програмний спосіб (через wp_nav_menu_items) цих проблем позбавлений: home_url('/') завжди повертає актуальну адресу головної сторінки з налаштувань WordPress.
До речі, якщо ви активно працюєте з меню, зазирніть у налаштування навігації в розділі «Зовнішній вигляд» → «Налаштувати», там можна керувати меню в реальному часі з прев’ю. А для просунутих правок (додавання іконок до пунктів, мегаменю) знадобляться окремі інструменти, але це вже тема для іншого матеріалу.
Відео: додавання домашньої кнопки за 2 хвилини
Якщо зручніше дивитися, а не читати, ось коротке англомовне відео з покроковим показом екрана:
⁉️🤔 Часті запитання
Чи можна додати домашнє посилання без плагінів і коду?
Так, через стандартний редактор меню WordPress: «Зовнішній вигляд» → «Меню» → блок «Сторінки» → позначити «Головна» → «Додати до меню». Це базовий функціонал ядра, доступний із версії 3.0.
Чому після зміни теми домашнє посилання зникло з меню?
Меню у WordPress прив’язані до областей меню (theme locations), які реєструє тема. У разі зміни теми старі області зникають, а нові можуть називатися інакше. Ваше меню нікуди не поділося, воно просто «відв’язалося». Зайдіть у «Зовнішній вигляд» → «Меню» → вкладка «Керування областями» та призначте наявне меню на область нової теми. Усі пункти, включно з домашнім посиланням, повернуться.
У меню вже є пункт «Головна», але він веде на якусь конкретну сторінку, а не на корінь сайту. Як виправити?
Найімовірніше, у меню додано конкретну сторінку із заголовком «Головна», а не спеціальний тип «Головна сторінка». Видаліть цей пункт із меню, потім у блоці «Сторінки» знайдіть запис із позначкою «Головна сторінка» (WordPress позначає її окремо) та додайте її. Якщо позначки немає, додайте пункт через «Довільні посилання»: у поле URL введіть
/, у поле «Текст посилання» пропишіть «Головна».
Як додати домашнє посилання не першим, а останнім у меню?
У програмному способі змініть порядок конкатенації: замість
$home_link . $itemsнапишіть$items . $home_link. У візуальному редакторі просто перетягніть пункт «Головна» мишею в кінець списку та збережіть меню.
Чи обов’язково використовувати esc_url() і home_url() у коді?
Так, це best practice WordPress.
home_url('/')динамічно підставляє актуальну адресу сайту з налаштувань, вам не доведеться правити код у разі зміни домену.esc_url()екранує спецсимволи та захищає від XSS-атак. Пропускати екранування в production-коді ризиковано.
Чи працює спосіб із кодом на мультисайтовій установці WordPress?
Так,
home_url( '/' )у мультисайті повертає URL конкретного сайту мережі, той, що вказаний у налаштуваннях цього підсайту. Для кожного сайту в мережі домашнє посилання буде своє. Якщо вам потрібна різна поведінка для різних сайтів, обгорнітьadd_filter()в умову перевірки ID блогу черезget_current_blog_id().
Що робити, якщо домашнє посилання не з’являється?
Спочатку перевірте очевидне: чи точно ви зберегли меню після додавання пункту? Кнопка «Зберегти меню» внизу сторінки, без неї зміни не застосовуються. Якщо меню збережено, а пункту немає, відкрийте сайт у режимі інкогніто (кеш браузера іноді приховує свіжі правки).
Друга ймовірна причина, кешувальний плагін (WP Rocket, W3 Total Cache, LiteSpeed Cache). Скиньте кеш через адмінпанель плагіна та перевірте сайт заново.
Якщо не допомогло, на хвилину перемкніть тему на стандартну (Twenty Twenty-Five або Twenty Twenty-Six). Пункт з’явився? Отже, проблема в кастомній темі, її функція wp_nav_menu() може бути перевизначена з обрізанням фільтрів. Перевірте виклик wp_nav_menu() у шаблоні теми: аргумент 'items_wrap' не повинен бути порожнім рядком, а 'fallback_cb' має бути false, тільки якщо ви свідомо вимикаєте fallback.
Код зі «Способу 2» за правильного theme_location відпрацьовує на будь-якій темі — це страховка на випадок, якщо візуальний метод із якоїсь причини не спрацьовує.
Домашнє посилання в меню, дрібниця, яка працює на довіру. Відвідувач, який потрапив на внутрішню сторінку з пошуку, за частки секунди знаходить шлях до початку сайту та йде вивчати далі. Без нього частина аудиторії просто закриє вкладку. Дві хвилини в редакторі меню або десять рядків коду, і ця точка входу більше не губиться.



