Коли починаєш створення власної теми для WordPress, одним із перших файлів стає header.php. Саме він відповідає за верхню частину сайту: секцію <head>, відкриття <body>, логотип, меню та інші елементи, які повторюються на всіх сторінках.
Якщо ти займаєшся Веб-розробкою або поступово вивчаєш Front-end розробку і Back-end розробку, то правильне розуміння цього файлу дуже допоможе надалі. Тут поєднуються HTML, CSS та PHP, а сама структура WordPress стає набагато зрозумілішою.
Для чого потрібен файл header.php
У класичній структурі теми WordPress файл header.php містить усе, що повинно відображатися на початку сторінки. Це не лише технічні теги, а й візуальна частина сайту.
Зазвичай у ньому знаходяться:
- DOCTYPE і відкриття HTML-документа;
- мета-теги;
- підключення стилів і скриптів;
- логотип;
- меню навігації;
- верхня панель сайту;
- виклик WordPress-хуків.
WordPress автоматично підтягує цей файл через функцію get_header(). Тому достатньо один раз правильно його налаштувати, і зміни застосуються до всіх сторінок теми.
Базова структура header.php
Ось мінімальний приклад файлу, з якого можна починати створення тем WordPress:
На перший погляд код виглядає простим, але тут вже є кілька важливих моментів.
Функція wp_head()
Це одна з найважливіших функцій у WordPress. Через неї система та плагіни Wordpress підключають стилі, JavaScript, SEO-метадані та інші компоненти.
Якщо забути вставити wp_head(), частина функціоналу сайту просто перестане працювати.
Функція body_class()
Вона автоматично додає CSS-класи до тега <body>. Це дуже корисно для Front-end розробки, тому що можна стилізувати різні сторінки окремо без ручного прописування класів.
Додавання меню навігації
Майже кожна тема WordPress використовує динамічне меню. Спочатку потрібно зареєструвати його у файлі functions.php.
Після цього меню можна вивести у header.php:
Такий підхід значно зручніший, ніж прописувати посилання вручну. Користувач зможе змінювати структуру меню прямо через адмінку WordPress.
Як правильно підключати стилі та скрипти
Новачки часто додають CSS або JavaScript прямо в header.php через HTML-теги. Але в WordPress правильніше використовувати функції enqueue.
Приклад для functions.php:
Це безпечніше та краще для сумісності з плагінами Wordpress.
Логотип сайту та назва
У сучасних темах зазвичай використовують кастомний логотип. WordPress дозволяє легко додати його через налаштування теми.
Це дає більше гнучкості та дозволяє змінювати логотип без редагування коду.
Навіщо потрібні хуки у header.php
Під час створення тем WordPress важливо розуміти, як працюють Хуки Wordpress. Саме вони дозволяють плагінам та самій системі змінювати поведінку сайту без редагування основних файлів.
Наприклад, wp_head() — це hook-точка, через яку можуть підключатися:
- SEO-плагіни;
- аналітика;
- Open Graph мета-теги;
- додаткові стилі;
- JavaScript-бібліотеки.
Через це не варто видаляти стандартні виклики WordPress навіть тоді, коли здається, що вони зайві.
Типові помилки новачків
Жорстко прописані URL
Не потрібно вручну вставляти адресу сайту. Краще використовувати:
Тоді сайт нормально працюватиме навіть після перенесення на інший домен.
Відсутність wp_head()
Це одна з найпоширеніших проблем. Без цього виклику можуть не працювати SEO-плагіни, кешування та навіть деякі стилі.
Змішування логіки та верстки
У header.php не варто писати складну бізнес-логіку. Краще залишати тут лише базову PHP-структуру та HTML-розмітку.
Чи потрібен header.php у block themes
У нових block themes структура WordPress поступово змінюється. Частину функціоналу тепер можуть виконувати HTML-шаблони та редактор сайтів.
Але класичний header.php усе ще активно використовується в більшості тем, особливо кастомних. Тому його розуміння залишається дуже важливим для PHP-розробки під WordPress.
Підсумок
Файл header.php — це основа будь-якої класичної теми WordPress. Саме тут формується структура сторінки, підключаються стилі та запускаються важливі хуки системи.
Якщо добре зрозуміти принцип його роботи, далі буде набагато легше створювати власні теми, адаптувати дизайн і працювати з плагінами Wordpress. А головне — ти почнеш краще розуміти внутрішню логіку WordPress як CMS.

'main-menu', 'menu_class' => 'top-menu' ) ); ?> Можете пояснити біль детально, що мається на увазі після array?
‘theme_location’ => ‘main-menu’ – вказує, яке саме меню має бути розміщене в даному місці шаблона, якщо їх декілька. Самі меню мають бути оголошені у файлі functions.php, цієї статті я ще не дописав, слідкуйте за оновленнями. ‘menu_class’ => ‘top-menu’ – тут прописуємо клас самого меню (в результаті вийде ul class=”top-menu”). Клас можете прописати який завгодно.