Создание собственного адаптивного шаблона WordPress — задача, с которой сталкивается каждый разработчик, желающий получить полный контроль над дизайном и функционалом сайта. В этой статье мы разберём пошагово, как сделать базовый, но полноценный адаптивный шаблон с нуля, без использования готовых фреймворков и тяжелых конструкторов.
Почему важно создавать адаптивные шаблоны WordPress
Адаптивность — ключевой критерий для современных сайтов. Большинство пользователей заходят на сайты с мобильных устройств, и если ваш шаблон не адаптируется под разные экраны, вы теряете трафик и позиции в поисковике. Кроме того, адаптивный шаблон обеспечивает лучшую юзабилити, снижает показатель отказов и повышает конверсию.
WordPress позволяет создавать темы, которые автоматически подстраиваются под размеры экрана, используя современные CSS-техники и правильную структуру HTML. В этом руководстве мы сделаем именно такой шаблон.
Основные файлы и структура адаптивной темы
Минимальный набор файлов для рабочей темы WordPress:
style.css— описание темы и основные стили;index.php— главный файл шаблона;functions.php— подключение скриптов, регистрация меню и поддержек;header.php— верхняя часть сайта с<head>и шапкой;footer.php— нижняя часть сайта;sidebar.php— боковая панель (необязательно).
Создадим структуру папки темы wpstuff-adaptive:
wpstuff-adaptive/
style.css
index.php
functions.php
header.php
footer.php
sidebar.phpПример файла style.css с описанием темы
Чтобы WordPress распознал тему, в style.css должен быть заголовок:
/*
Theme Name: WPStuff Adaptive
Theme URI: https://wpstuff.ru
Author: WPStuff
Author URI: https://wpstuff.ru
Description: Адаптивный шаблон WordPress с нуля
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: wpstuff-adaptive
*/Создание базовой HTML-разметки и подключение стилей
В header.php подключим шапку и добавим базовые метатеги для адаптивности:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title><?php wp_title('|', true, 'right'); ?></title>
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<header class="site-header">
<div class="container">
<h1 class="site-title"><a href="<?php echo esc_url(home_url('/')); ?>"><?php bloginfo('name'); ?></a></h1>
<nav class="site-navigation">
<?php wp_nav_menu(array('theme_location' => 'primary')); ?>
</nav>
</div>
</header>Обратите внимание на метатег viewport — он отвечает за масштабирование на мобильных устройствах.
Регистрация меню и подключение скриптов в functions.php
Чтобы меню работало, зарегистрируем его и подключим стили:
function wpstuff_register_theme() {
register_nav_menus(array(
'primary' => __('Главное меню', 'wpstuff-adaptive')
));
wp_enqueue_style('wpstuff-style', get_stylesheet_uri());
}
add_action('wp_enqueue_scripts', 'wpstuff_register_theme');Адаптивная верстка с помощью CSS медиа-запросов
В style.css добавим базовые стили и адаптивность:
body {
margin: 0;
font-family: Arial, sans-serif;
}
.container {
width: 90%;
max-width: 1200px;
margin: 0 auto;
}
.site-header {
background-color: #222;
color: #fff;
padding: 20px 0;
}
.site-title a {
color: #fff;
text-decoration: none;
}
.site-navigation ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
gap: 15px;
}
.site-navigation a {
color: #fff;
text-decoration: none;
}
/* Адаптивность для мобильных устройств */
@media (max-width: 768px) {
.site-navigation ul {
flex-direction: column;
gap: 10px;
}
}Добавление мобильного меню (гамбургер)
Для удобства пользователей на мобильных устройствах часто добавляют кнопку гамбургер для показа и скрытия меню. Реализуем простой пример с помощью JavaScript и стилей.
function wpstuff_enqueue_scripts() {
wp_enqueue_script('wpstuff-mobile-menu', get_template_directory_uri() . '/js/mobile-menu.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'wpstuff_enqueue_scripts');Создайте файл js/mobile-menu.js с таким содержимым:
jQuery(document).ready(function($) {
$('.menu-toggle').click(function() {
$('.site-navigation ul').slideToggle();
});
});В header.php добавьте кнопку:
<button class="menu-toggle" aria-controls="primary-menu" aria-expanded="false">☰</button>И в CSS добавьте стили:
.menu-toggle {
display: none;
background: none;
border: none;
font-size: 24px;
color: #fff;
cursor: pointer;
}
@media (max-width: 768px) {
.menu-toggle {
display: block;
}
.site-navigation ul {
display: none;
flex-direction: column;
}
}Пример базового цикла вывода записей в index.php
Для отображения записей блога в index.php используем стандартный loop WordPress:
<?php get_header(); ?>
<main class="container">
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<article id="post-<?php the_ID(); ?>">
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div class="entry-content">
<?php the_excerpt(); ?>
</div>
</article>
<?php endwhile; ?>
<?php else : ?>
<p>Записей не найдено.</p>
<?php endif; ?>
</main>
<?php get_sidebar(); ?>
<?php get_footer(); ?>Полезные плагины для разработки и отладки адаптивных тем
Для создания и отладки адаптивных тем рекомендуем несколько плагинов:
- Query Monitor — помогает отследить запросы к базе, ошибки PHP и HTTP-запросы;
- Regenerate Thumbnails — для быстрого пересоздания миниатюр после изменения размеров;
- Debug Bar — панель с информацией для разработчика;
- WP Retina 2x — адаптация изображений для экранов с высоким разрешением;
- Theme Check — поможет проверить тему на соответствие стандартам WordPress.
Заключение по созданию адаптивного шаблона
Создание адаптивного шаблона с нуля — отличный способ получить уникальный дизайн и улучшить производительность сайта. Главное — правильно структурировать файлы, использовать современные стандарты HTML5 и CSS3, а также не забывать про удобство пользователей на мобильных устройствах. Приведённое в статье руководство даёт прочный фундамент для дальнейшего развития и кастомизации темы под любые задачи.