Вступ до розробки тем для WordPress: створіть свою першу власну тему з нуля

Читання за 3 хвилини.
2026-03-10
2026-06-04
2,111
Я заробляю комісію, коли ви робите покупки за посиланнями нижче, без додаткових витрат для вас.

Щоб створити повнофункціональний тематичний дизайн для WordPress, вам знадобиться підготувати низку основних файлів. Ці файли складають каркас теми, і кожен з них виконує певну функцію.

Найбазовіші файли включають:
* `style.css`:主题的样式表,同时也是主题的“身份证”,包含主题名称、作者、描述等元信息。
* `index.php`:主题的主模板文件,是默认的首页和文章列表页模板。
* `header.php`:网站的头部模板,通常包含`<head>`部分和网站顶部的导航区域。
* `footer.php`:网站的底部模板,通常包含版权信息、脚本等。
* `functions.php`:主题的功能文件,用于添加自定义功能、注册菜单、侧边栏等。

Давайте почнемо зі створення файлу `style.css`. На початку файлу вам потрібно додати коментар із інформацією про тему цього файлу.

/*
Theme Name: 我的第一个主题
Theme URI: https://example.com/my-first-theme
Author: 你的名字
Author URI: https://example.com
Description: 这是一个为学习WordPress主题开发而创建的简单自定义主题。
Version: 1.0
License: GPL v2 or later
Text Domain: my-first-theme
*/

Далі створіть файл `index.php`. У найбазовій версії цього файлу потрібно включити елементи верхньої та нижньої частини сторінки (header та footer), а також виконати цикл для відображення всіх статей.

<?php get_header(); ?>

<main id="main-content">
    
            <article id="post-<?php the_ID(); ?>">
                <h2><a href="/uk/</?php the_permalink(); ?>"><p><strong>  <p><strong></a></h2>
                <div class="entry-content">
                    <p><strong>  <p><strong>
                </div>
            </article>
        
        <p>Поки що немає жодних статей.</p>
    <?php endif; ?>
</main>

<?php get_footer(); ?>

Файли `header.php` та `footer.php` містять загальну для всього веб-сайту структуру верхньої та нижньої частини сторінки (тобто заголовок та футер). Файл `functions.php` використовується для розширення функціоналу теми (теми сайту).

UltaHost – хостинг для сайтів, побудованих на платформі WordPress
Гарантія повернення грошей протягом 30 днів, необмежена пропускна здатність мережі та доступ до баз даних, безкоштовний захист від DDoS-атак; знижка 50% при покупці на термін 3 роки (варіанти об’ємів трафіку: 4 ТБ/5

Зрозуміти ієрархію шаблонів та циклів.

WordPress використовує інтелектуальну систему шарів шаблонів для визначення способу відображення вмісту різних сторінок. Наприклад, під час відвідування окремої статті WordPress спочатку шукає файл `single.php`; під час відвідування сторінки категорії – файл `category.php`; якщо цих файлів немає, система переходить до файлу `archive.php`, а якщо його також немає – до файлу `index.php`.

Що таке головний цикл (main loop)?

`the loop`是WordPress主题开发的核心概念。它是一段PHP代码,用于从数据库中获取文章内容并将其显示在网页上。你在`index.php`中看到的`while ( have_posts() ) : the_post();`就是循环的开始。在循环内部,你可以使用一系列模板标签来输出文章信息,如`the_title()`, `the_content()`, `the_permalink()`等。

Рекомендуємо до прочитання. Повний посібник з розробки тем для WordPress: від початківців до досвідчених фахівців

Створіть інші файли шаблонів.

Щоб тема виглядала більш професійно, вам варто створити кілька стандартних шаблонних файлів. Наприклад, створіть файл `single.php` для окремого відображення статей:

<?php get_header(); ?>

<main>
    <?php while ( have_posts() ) : the_post(); ?>
        <article>
            <h1><p><strong>  <p><strong></h1>
            <div class="post-meta">
                发布于: | 作者:
            </div>
            <div class="post-content">
                <p><strong>  <p><strong>
            </div>
        </article>
        
</main>

<?php get_footer(); ?>

Так само ви можете створити файл `page.php` для визначення шаблону сторінки та файл `archive.php` для визначення шаблону архівних сторінок, які містять категорії, теги тощо.

Інтеграція меню та бічної панелі

Сучасний дизайн сайту зазвичай включає налаштовуваний навігаційний меню та зону підказок (інструментів) у бічній панелі. Ці функції необхідно зареєструвати та активувати за допомогою файлу `functions.php`.

Реєстрація навігаційного меню

Додавши наступний код до файлу `functions.php`, ви зможете зареєструвати нове місце для розташування елементів теми, наприклад, “Головний меню”.

function my_first_theme_setup() {
    // 注册一个导航菜单位置
    register_nav_menus( array(
        'primary' => __( '主菜单', 'my-first-theme' ),
    ) );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' );

Після реєстрації користувач може налаштувати меню у WordPress у розділі “Вигляд” -> “Меню” та призначити його для відповідного місця на сайті. Далі, у файлі `header.php` у місці, де потрібно відобразити меню, додайте наступний код, щоб використати це меню:

hosting.com Віртуальний хостинг
Висока продуктивність завдяки процесорам AMD EPYC, SSD-накопичувачам NVMe і технології LiteSpeed, цілодобова експертна підтримка, розширені заходи безпеки, включаючи SSL, грубу силу, захист від шкідливих програм і DDoS, економія до 73%.
<nav id="site-navigation">
    <?php
    wp_nav_menu( array(
        'theme_location' => 'primary',
        'menu_id'        => 'primary-menu',
    ) );
    ?>
</nav>

Додати бічну панель з додатками/інструментами

Маленькі інструменти (“widgets”) є дуже гнучкою функцією WordPress. Щоб додати бічну панель, також необхідно зареєструвати „область для маленьких інструментів“ у файлі `functions.php`.

Функція my_first_theme_widgets_init() {
    register_sidebar( array(
        'name' =&gt; __( 'Головна бічна панель', 'my-first-theme' ),
        'id' =&gt; 'sidebar-1',
        'description' =&gt; __( 'Додайте сюди віджети.', 'my-first-theme' ),
        'before_widget' =&gt; '  Функція my_first_theme_widgets_init() {
    register_sidebar( array(
        'name' =&gt; __( 'Головна бічна панель', 'my-first-theme' ),
        'id' =&gt; 'sidebar-1',
        'description' =&gt; __( 'Додайте сюди віджети.', 'my-first-theme' ),
        'before_widget' =&gt; '  The function my_first_theme_widgets_init() {
    register_sidebar( array(
        'name' =&gt; __( 'Main sidebar', 'my-first-theme' ),
        'id' =&gt; 'sidebar-1',
        'description' =&gt; __( 'Add widgets here.', 'my-first-theme' ),
        'before_widget' =&gt; ' &lt;&#039;<section id="%1$s" class="widget %2$s">',
        'after_widget' =&gt; '</section>',
        'before_title' =&gt; '<h2 class="widget-title">',
        'after_title' =&gt; '</h2>',
    ) );
}
add_action( 'widgets_init', 'my_first_theme_widgets_init' );

Потім, у файлі шаблону, де ви бажаєте відобразити бічну панель (наприклад, `sidebar.php`), використовуйте функцію `dynamic_sidebar()` для її відображення.

<aside id="secondary" class="widget-area">
    <?php dynamic_sidebar( 'sidebar-1' ); ?>
</aside>

Нарешті, не забудьте імпортувати цей файл бічної панелі у `index.php` або `single.php` за допомогою функції `get_sidebar();`.

Рекомендуємо до прочитання. Посібник з розробки тем для WordPress: створення власних тем з нуля

Додавання стилів та скриптів

为了保持代码的整洁和可维护性,不应该直接在HTML中硬编码样式和脚本链接。正确的方式是通过`functions.php`文件,使用`wp_enqueue_style()`和`wp_enqueue_script()`函数将它们加入队列。

Ввести таблицю стилів

Хоча файл `style.css` є обов’язковим, WordPress не завантажує його автоматично. Вам потрібно вручну додати його до списку файлів, які мають бути завантажені. Зазвичай основний стилістичний файл розділяють на окремий файл основних налаштувань та файл, який скидає всі попередні налаштування.

Міжсерверний віртуальний хостинг
Віртуальний хостинг $2.50 USD на місяць, перший місяць $0.1 USD за промокодом tryinterserver, 461 скрипт хмарних додатків, встановлення в один клік.
function my_first_theme_scripts() {
    // 引入主题的主样式表
    wp_enqueue_style( 'my-first-theme-style', get_stylesheet_uri() );

// 引入一个自定义样式表 (假设位于 /assets/css/main.css)
    wp_enqueue_style( 'my-first-theme-main', get_template_directory_uri() . '/assets/css/main.css' );

// 引入一个自定义JavaScript文件 (假设位于 /assets/js/navigation.js)
    wp_enqueue_script( 'my-first-theme-navigation', get_template_directory_uri() . '/assets/js/navigation.js', array(), false, true );
}
add_action( 'wp_enqueue_scripts', 'my_first_theme_scripts' );

Використання сучасних практик розробки з CSS

У фронтенд-розробці 2026 року дуже важливо звертати увагу на респонсивний дизайн та доступність сайту. У вашому файлі `style.css` або окремому файлі `main.css` слід використовувати медіаквері (media queries), щоб гарантувати правильне відображення сайту на різних пристроях.

/* 基础样式 */
body {
    font-family: sans-serif;
    line-height: 1.6;
}

/* 响应式导航菜单 */
@media screen and (max-width: 768px) {
    #primary-menu {
        display: none;
    }
    /* 移动端菜单样式 */
}

Тестування та налагодження

Після завершення розробки теми тестування є невід’ємною частиною процесу. Вам необхідно провести всебічні тести в різних середовищах, на різних браузерах та пристроях.

Увімкніть режим налагодження.

Під час розробки обов’язково увімкніть режим налагодження WordPress. Це допоможе вам швидко виявляти помилки, попередження та сповіщення, пов’язані з PHP. Відкрийте файл `wp-config.php` та знайдіть або додайте наступний код:

Рекомендуємо до прочитання. Посібник з розробки теми WordPress у 2026 році: створення адаптивного корпоративного вебсайту з нуля

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // 将错误记录到 /wp-content/debug.log 文件
define( 'WP_DEBUG_DISPLAY', false ); // 不在页面上显示错误,更安全

Тематичні модульні тести (Subject-based Unit Tests)

Рекомендуємо використовувати офіційні дані для тестування тем WordPress, щоб повністю перевірити їх функціональність. Ці дані містять різні типи статей, сторінок, медіафайлів, коментарів тощо, що дозволяє гарантувати правильне відображення вашої теми під час роботи з різноманітним контентом та уникнути проблем із стилем або макетом.

підсумок

Від створення базових файлів `style.css` та `index.php` до розуміння ієрархії шаблонів та циклів, а також до налаштування меню, бічних панелей та безпечного додавання стилістичних скриптів – ви пройшли весь процес створення базової, але повноцінної користувацької теми для WordPress. Пам’ятайте, що розробка тем є ітеративним процесом: починати слід з найпростішої версії та поступово додавати функції та вдосконалювати деталі – це найкраща практика. Постійне вивчення тегів шаблонів, дій-закріплень (action hooks) та фільтрів дозволить вам створювати ще потужніші та гнучкіші теми.

Часті запитання

Які базові знання потрібні для розробки тем для WordPress?

Вам потрібно оволодіти основами HTML, CSS та PHP. Також буде корисним знання JavaScript для додавання інтерактивних функцій. Крім того, важливо знати основні концепції WordPress: статті, сторінки, категорії, теги, плагіни та меню.

Чому зміни, які я зробив у своєму тематичному дизайні, не відображаються у фоновому режимі (в бекенді)?

Зазвичай це спричинено кешем браузера або кешем WordPress. Спробуйте спочатку зробити примусове оновлення браузера (Ctrl + F5 або Cmd + Shift + R). Якщо проблема залишиться, переконайтеся, що ви правильно додали стилі та скрипти до черги обробки, а також що у файлі `functions.php` немає синтаксичних помилок. У дуже рідких випадках може знадобитися очистити кеш сервера або плагінів.

Як зробити так, щоб моя тема підтримувала декілька мов?

你需要做好主题的“国际化”准备。这意味着在代码中所有需要翻译的文本,都应使用翻译函数(如`__()`, `_e()`)进行包装,并为`text-domain`设置一个唯一标识(在`style.css`的头部已定义)。然后,你可以使用如Poedit这样的工具创建`.po`和`.mo`翻译文件,使你的主题能够被轻松翻译成其他语言。

У чому різниця між користувацькими темами (custom themes) та підтемами (subthemes)?

Користувацькі теми (custom themes) – це абсолютно нові теми, розроблені з нуля. Натомість підтеми (subthemes) базуються на існуючій “базовій темі” (parent theme) та успадковують від неї всі функції, стилі та файли шаблонів. За допомогою підтем ви можете змінювати або додавати лише необхідні елементи (зазвичай стилі та деякі файли шаблонів), не змінюючи при цьому основну тему. Цей підхід є більш безпечним та ефективним способом адаптації чи оновлення популярних тем, оскільки ваші зміни не будуть перевершені оновленнями самої базової теми.