Как создать свою тему для WordPress с нуля

Пошаговая инструкция по созданию темы WordPress

1. Подготовка рабочего окружения

Необходимое ПО:

  • Локальный сервер: XAMPP, MAMP, Local by Flywheel или аналогичный. Можно в принципе сделать и на рабочем.
  • WordPress: Скачайте последнюю версию с wordpress.org.
  • Кодовый редактор: Notepad++, VS Code, Sublime Text и др. Я использую Phpstorm.
  • Базовые знания HTML, CSS, PHP, JS и структуры WordPress.

2. Создание папки темы

Перейдите в папку wp-content/themes/

Создайте папку для вашей темы, например: wp-content/themes/mytheme

3. Минимальный набор файлов темы

Чтобы тема появилась в админке, достаточно двух файлов:

  1. style.css — Заголовочный файл с метаинформацией.
  2. index.php — Главный файл шаблона.

Пример style.css:

/*
Theme Name: Моя первая тема
Theme URI: http://example.com
Author: Ваше имя
Author URI: http://example.com
Description: Моя первая тема для WordPress
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mytheme
*/

Пример index.php:

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
    <meta charset="<?php bloginfo('charset'); ?>">
    <title><?php bloginfo('name'); ?></title>
    <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>">
</head>
<body>

    <h1><?php bloginfo('name'); ?></h1>
    <p><?php bloginfo('description'); ?></p>

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        <h2><?php the_title(); ?></h2>
        <?php the_content(); ?>
    <?php endwhile; endif; ?>

</body>
</html>

Теперь ваша тема видна в Внешний вид → Темы.

4. Структура стандартной темы

Для удобства и расширяемости добавьте следующие файлы:

Файл Назначение
style.css Стили для элементов шаблона
index.php Основной и главный файл шаблона
functions.php Подключение скриптов, меню, настройка темы
header.php Шапка сайта
footer.php Подвал сайта
sidebar.php Боковая панель (если нужно)
single.php Отдельная запись
page.php Страница
archive.php Архив записей
404.php Страница 404
screenshot.png Превью темы (размер 1200×900 пикселей)

5. Разделение шаблона

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

В index.php:

<?php get_header(); ?>

<!-- Основной контент -->

<?php get_footer(); ?>

6. Настройка functions.php

Важный файл для настройки темы:

<?php
// Включение поддержки меню
add_theme_support('menus');

// Включение поддержки миниатюр
add_theme_support('post-thumbnails');

// Регистрация меню
function register_my_menus() {
    register_nav_menus(
        array(
            'header-menu' => __( 'Header Menu' )
        )
    );
}
add_action( 'init', 'register_my_menus' );

// Подключение стилей и скриптов
function load_theme_scripts() {
    wp_enqueue_style('style', get_stylesheet_uri());
}
add_action('wp_enqueue_scripts', 'load_theme_scripts');
?>

7. Подключение меню

В нужном месте вывода меню:

<?php wp_nav_menu( array( 'theme_location' => 'header-menu' ) ); ?>

8. Подключение миниатюр:

В цикле WordPress:

<?php if ( has_post_thumbnail() ) : ?>
    <?php the_post_thumbnail('thumbnail'); ?>
<?php endif; ?>

9. Работа с шаблонами страниц

Можно создать отдельный шаблон для страницы: page-about.php:

<?php
/*
Template Name: About Page
*/
get_header(); ?>

<h1><?php the_title(); ?></h1>
<?php the_content(); ?>

<?php get_footer(); ?>

10. Создание кастомайзера (по желанию)

Добавить настройки темы в админке:

function mytheme_customize_register( $wp_customize ) {
    $wp_customize->add_section( 'header_section' , array(
        'title'      => __( 'Настройки Шапки', 'mytheme' ),
        'priority'   => 30,
    ));

    $wp_customize->add_setting( 'header_text' , array(
        'default'   => 'Привет, мир!',
        'transport' => 'refresh',
    ));

    $wp_customize->add_control( new WP_Customize_Control( $wp_customize, 'header_text_control', array(
        'label'      => __( 'Текст шапки', 'mytheme' ),
        'section'    => 'header_section',
        'settings'   => 'header_text',
    )));
}
add_action( 'customize_register', 'mytheme_customize_register' );

Вывести в шаблоне:

<?php echo get_theme_mod('header_text'); ?>

11. Проверка и оптимизация

  1. Проверить валидность кода;
  2. Убедиться, что используются стандартные функции WordPress;
  3. Тестировать тему на мобильных устройствах;
  4. Использовать инструмент Theme Check.

12. Подготовка темы для публикации

  • Добавьте файл README.
  • Лицензия (обычно GPL).
  • Можно залить на WordPress.org или продать на маркетплейсах (ThemeForest, TemplateMonster).

Скачать готовый пример


Скачать zip архив с шаблоном

Просто распакуйте архив в папку wp-content/themes/, активируйте тему в админке WordPress, и она готова к использованию!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *



Рекламный блок, для развития проекта