Подготовка и настройка окружения
Прежде чем приступать к написанию кода, вам понадобится стабильная и профессиональная локальная среда разработки. Категорически не рекомендуется изменять файлы тем в режиме онлайн на сервере – локальная среда позволит вам свободно тестировать свои изменения, не влияя на нормальный доступ к сайту. Вы можете использовать программы для создания интегрированных сред разработки, такие как XAMPP, MAMP (для Mac) или Laragon (для Windows); эти программы позволяют одним кликом установить и настроить Apache, MySQL и PHP.
Сама система WordPress также должна быть установлена на вашем локальном компьютере. Посетите официальный сайт WordPress, скачайте последнюю версию программы для установки, затем распакуйте архив в корневой каталог веб-сайта на вашем локальном сервере (например, в каталоге, созданном при использовании пакета XAMPP). htdocs Затем откройте папку с программным обеспечением в браузере и выполните известную процедуру установки, которая занимает всего пять минут. Во время установки не забывайте о данных, которые вы указали ранее.
В конце концов, вам понадобится удобный кодовый редактор или интегрированная среда разработки. Visual Studio Code, PhpStorm и Sublime Text — отличные варианты, которые обеспечивают выделение синтаксиса, предложения по написанию кода и функции управления файлами, значительно повышая тем самым эффективность разработки.
Рекомендуемое чтение Пошаговое освоение разработки тем для WordPress: создание собственных тем с нуля。
Понимание основной структуры темы WordPress
Тема WordPress по сути расположена в /wp-content/themes/ Папка, находящаяся в каталоге, содержит ряд файлов и подпапок, которые соблюдают определенные правила. Эти файлы вместе обеспечивают работу системы WordPress и определяют внешний вид и содержимое веб-сайта.
Самым важным механизмом в WordPress является система уровней шаблонов. Система автоматически выбирает подходящий шаблон в зависимости от типа страницы, на которую происходит запрос. Например, при посещении статьи в блоге WordPress в первую очередь ищет соответствующий шаблон для отображения содержимого этой статьи. single.phpПри посещении главной страницы блога пользователи ищут определенную информацию. home.php или index.phpЭтот механизм обеспечивает темам большую гибкость в использовании.
Каждая тема должна включать два базовых файла:style.css и index.php。style.css Роль файла с шаблонами не ограничивается лишь предоставлением стилей; блок комментариев в его заголовочной части служит своего рода “идентификационным документом” шаблона, позволяющим сообщить WordPress его название, автора, описание и другую метаинформацию.index.php Это последний «защитный барьер»: если другие более специфические шаблонные файлы отсутствуют, WordPress использует именно этот шаблон.
Типичное примечание к заголовку темы выглядит следующим образом:
/*
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
*/ Text Domain Используется для интернационализации; это идентификатор, который применяется при последующем вызове функций перевода.
Рекомендуемое чтение Создание профессионального веб-сайта: полное руководство по созданию пользовательской темы WordPress с нуля.。
Помимо этих двух файлов, полнофункциональная тема обычно также включает в себя:header.php(Верхняя часть веб-страницы)footer.php(В нижней части веб-страницы)sidebar.php(Боковая панель) а также functions.php(Файл с улучшениями функционала тем). Понимая эту базовую структуру, вы получаете представление о каркасе разработки тем.
Создание основного шаблонного файла
Теперь давайте начнем создавать первый тематический раздел (тему). В вашем… /wp-content/themes/ В каталоге создайте новую папку и назовите её, например, «NewFolder». my-first-themeЗатем создайте в этой папке самый простой из возможных файлов.
Сначала создайте… style.cssИ добавьте комментарии с заголовками тем, упомянутые в предыдущей части. Затем создайте… index.phpЭто ваш первый шаблонный файл – самый простой из всех возможных. index.php Можно использовать цикл, который включает только вызов заголовка статьи и её содержимого:
<main>
<article>
<h2></h2>
<div></div>
</article>
<p>К сожалению, в настоящее время нет никакого контента для перевода.</p>
</main> В этом коде используются теги-шаблоны. get_header(), get_sidebar(), get_footer(), the_title() и the_content()Чтобы это сработало, вам необходимо создать соответствующие файлы для верхней части страницы (header), боковой панели (sidebar) и нижней части страницы (footer).
Создать header.phpОно должно включать начальную часть HTML-документа до того момента, когда начинается основная часть содержимого.
<!DOCTYPE html>
<html no numeric noise key 1007>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body no numeric noise key 1004>
<header>
<h1><a href="/ru/</?php echo esc_url( home_url( '/' ) ); ?>"></a></h1>
<p></p>
<nav>
'primary'
) );
?>
</nav>
</header> Здесь,wp_head() Это крайне важный механизм, который позволяет ядру WordPress, плагинам и темам вставлять необходимый код в верхнюю часть страницы (например, ссылки на стилевые таблицы).body_class() Функция возвращает список семантических имен CSS-классов, что облегчает точное настройство стилей.
Рекомендуемое чтение Основная архитектура и принципы работы WordPress。
Создать footer.php Чтобы закрыть открытую вкладку:
<footer>
<p>©</p>
</footer>
</body>
</html> Обратите внимание.wp_footer() Это связано с тем, что wp_head() Относительный хвостовой крючок также является неотъемлемой частью конструкции.
Создать sidebar.phpПока можно добавить только один простой элемент управления (контроль).
<aside>
<?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?>
<?php dynamic_sidebar( 'sidebar-1' ); ?>
<?php endif; ?>
</aside> В настоящее время ваша тема уже обладает базовыми функциями использования шаблонов; их можно активировать и просмотреть в режиме разработки. Хотя эти функции и примитивны, они соответствуют основной архитектуре WordPress.
Расширение функционала темы с помощью файла Functions.php
functions.php Файл является своего рода “центром управления” вашей темой. Это не шаблонный файл, а PHP-файл, который автоматически загружается при инициализации темы. Он используется для добавления новых функций, регистрации компонентов и подключения к различным API-интерфейсам WordPress. Именно это играет ключевую роль в создании профессиональных и функционально совершенных тем.
Вам необходимо создать этот файл в корневом каталоге темы. Сначала давайте добавим в тему таблицы стилей и скрипты. Правильный способ — использовать функции, предоставляемые WordPress, чтобы выполнить необходимые действия, а не написать код непосредственно в HTML-коде. <link> Теги.
<?php
function my_first_theme_scripts() {
// 添加主题的主样式表
wp_enqueue_style( 'main-style', get_stylesheet_uri() );
// 添加一个自定义样式表
wp_enqueue_style( 'custom-style', get_template_directory_uri() . '/assets/css/custom.css', array(), '1.0' );
// 添加一个 JavaScript 文件
wp_enqueue_script( 'main-script', get_template_directory_uri() . '/assets/js/main.js', array('jquery'), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_first_theme_scripts' ); Здесь,wp_enqueue_style() и wp_enqueue_script() Это функция, предназначенная для безопасного добавления ресурсов.get_stylesheet_uri() соответствующего теме style.css。add_action() Монтируйте нашу функцию на… wp_enqueue_scripts Убедитесь, что этот механизм срабатывает в правильный момент.
Далее необходимо зарегистрировать навигационный меню и боковую панель (зону с инструментами):
function my_first_theme_setup() {
// 注册一个导航菜单位置
register_nav_menus( array(
'primary' => __( '主导航菜单', 'my-first-theme' ),
'footer' => __( '底部菜单', 'my-first-theme' ),
) );
// 启用文章特色图像功能
add_theme_support( 'post-thumbnails' );
// 为“文章”类型启用文章格式支持
add_theme_support( 'post-formats', array( 'aside', 'gallery', 'quote' ) );
// 添加对 HTML5 标记格式的支持
add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
// 启用标题标签功能
add_theme_support( 'title-tag' );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' ); register_nav_menus() Необходимо добавить в интерфейс “Внешний вид” → “Меню”, доступный в бэкенде, список позиций для выбора блюд.add_theme_support() Функции предназначены для активации различных функций тем (тематических настроек интерфейса), и это стандартная практика в современном разработческом процессе создания тем. Например, для активации определенных функций темы используются соответствующие функции. title-tag После этого вам больше не придется это делать. header.php \nРучное выведение на экран. <title> Метка добавлена.
Наконец, необходимо зарегистрировать область для размещения панелей инструментов (сайдбаров):
Функция my_first_theme_widgets_init() {
register_sidebar( array(
'name' => __( 'Главная боковая панель', 'my-first-theme' ),
'id' => 'sidebar-1',
'description' => __( 'Добавьте виджеты здесь.', 'my-first-theme' ),
'before_widget' => ' Функция my_first_theme_widgets_init() {
register_sidebar( array(
'name' => __( 'Главная боковая панель', 'my-first-theme' ),
'id' => 'sidebar-1',
'description' => __( 'Добавьте виджеты здесь.', 'my-first-theme' ),
'before_widget' => ' <'<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>'перед заголовком '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'my_first_theme_widgets_init' ); Теперь ваш тематический дизайн обладает полноценной структурой, позволяющей перейти от базового представления до дальнейшего улучшения его функциональности. С помощью меню настройок в бэкенде и добавления различных дополнительных инструментов (приложений/функций) вы сможете наблюдать за динамическими изменениями в внеш
резюме
С момента создания… style.css и index.php Начиная с определённой папки, необходимо создать отдельные компоненты шаблона (тематические модули), которые затем будут использоваться в процессе сборки конечного продукта.header.php, footer.phpЗатем – с использованием мощных… functions.php Меню регистрации файлов, боковая панель, а также безопасное загрузка ресурсов – вы уже прошли весь основной путь создания пользовательской темы для WordPress. Суть этого процесса заключается в понимании и соблюдении иерархии шаблонов и системы хуков (hooks) в WordPress.
Теперь вы уже не просто пользователь этих шаблонов, а их создатель. Обладая этими основными знаниями, вы сможете продолжить изучение более сложных файлов шаблонов. single.php、page.php、archive.phpИсследуйте дополнительные возможности циклов в WordPress и используйте условные теги (например, …) для реализации различных функций. is_page(), is_single()Это позволяет осуществлять более детальный контроль над содержимым страницы. Мир разработки тематических решений (тематического дизайна) обширен и увлекателен; это лишь надежная отправная точка для дальнейших действий.
Часто задаваемые вопросы
Для разработки тем для WordPress необходимо владеть PHP на высоком уровне?
需要具备 PHP 的基础知识,但无需达到精通的水平。你至少需要理解变量、数组、条件语句(if/else)、循环(while/foreach)以及函数的基本概念。因为 WordPress 主题开发大量使用了其内置的 PHP 函数(模板标签)和钩子系统,所以学习重点在于理解 WordPress 特有的 PHP 函数如何使用,而非从头编写复杂的 PHP 算法。
Зачем обязательно использовать функции wp_head() и wp_footer()?
Эти две функции являются ключевыми хуками (core hooks) в WordPress.wp_head() Находится в </head> Перед этим тегом WordPress-ядро, плагины, а также ваше собственное тематическое оформление могут вставлять необходимый код в верхнюю часть страницы: ссылки на CSS-шаблоны, мета-теги, переменные JavaScript и т. д.wp_footer() Находится в </body> Эти теги обычно используются для вставки аналитического кода или JavaScript-файлов, загружаемых с отложением. Без них многие плагины не смогут работать корректно, а некоторые функции самого WordPress могут выдавать ошибки.
Как добавить шаблон страницы для моей темы?
Создайте новый PHP-файл, например, под названием `new_file.php`. page-fullwidth.phpВ начале этого файла вам необходимо добавить блок с комментарием, в котором указывается имя используемой шаблона. Например:
<?php
/**
* Template Name: 全宽页面
* Description: 一个没有侧边栏的页面模板
*/ Затем вы можете написать в этом файле что-то, отличное от… page.php HTML-структура, например, с опущенными элементами… get_sidebar() После сохранения изменений, при редактировании страницы в backend WordPress в разделе “Свойства страницы” в выпадающем списке “Шаблоны” появится опция “Полноэкранная страница” для выбора.
Какие считаются лучшими практиками использования CSS и JavaScript при разработке тем?
Лучшей практикой является использование инструментов, предоставляемых системой WordPress. wp_enqueue_style() и wp_enqueue_script() Функция… functions.php Прикреплено к… (It’s mounted to…) wp_enqueue_scripts Используйте хуки для добавления ресурсов. Такой подход позволяет: 1) правильно обрабатывать зависимости (например, если ваш скрипт зависит от jQuery); 2) избегать повторной загрузки одного и того же ресурса; 3) упрощать управление плагинами и кодом других тем; 4) соответствовать стандартам кодирования WordPress. Обязательно избегайте прямого использования в файлах шаблонов. <link> или <script> Ресурсы, связанные с использованием тегов, являются жестко закодированными (то есть их содержимое не может быть изменено в процессе работы программы).
Как реализовать многоязычную поддержку (интернационализацию) для моего проекта?
Вам нужно сделать две вещи. Во-первых, style.css При переводе текста, включающего заголовочные комментарии и элементы, используйте соответствующий “текстовый домен” (Text Domain). Как указано в руководстве, необходимо правильно определить структуру и содержимое этих элементов. Text Domain: my-first-theme. Во-вторых, в functions.php Во всех шаблонных файлах текст пользовательского интерфейса, который требуется перевести, следует обернуть функциями перевода WordPress. Наиболее распространенным способом является использование функций, предоставляемых системой для работы с переводами. __()(Вернуться к переведенной строке) и _e()(Прямое отображение переведенного текста.) Например:<?php _e( ‘Hello World’, ‘my-first-theme’ ); ?>После этого вы можете использовать такие инструменты, как Poedit, для создания нужного результата. .pot Шаблонный файл, предназначенный для создания переводов на разные языки переводчиками. .po и .mo Документ.
Что дальше, что дальше?
Расширенное чтение и практические знания
Следующие статьи связаны с темой этой статьи и подходят для дальнейшего углубленного чтения. Зачастую лучше начать с той статьи, которая наиболее близка к вашей текущей проблеме, а затем постепенно переходить к другим темам.
- Подробный анализ WooCommerce: создание мощного электронного магазина на WordPress с нуля
- Полное руководство по выбору идеальной темы для WordPress: от основных принципов работы до настройки под индивидуальные потребности пользователя
- Полное руководство по оптимизации производительности WordPress: ускорение работы системы с самого ядра до фронтенда
- Как установить и настроить SSL-сертификат для вашего веб-сайта на WordPress?
- Руководство по настройке оптимизации кэширования всего сайта в WooCommerce: повышение скорости и конверсии электронных магазинов на базе WordPress