Понять базовую структуру и основные файлы темы WordPress.
Кастомная тема для WordPress по сути представляет собой папку, содержащую определенные файлы, которая находится в определенном месте в структуре системы./wp-content/themes/Эти файлы находятся в каталоге. Они следуют системе иерархии шаблонов WordPress и вместе определяют, как сайт отображает содержимое базы данных (статьи, страницы) посетителям. Понимание роли каждого файла и способа их взаимодействия является первым шагом в процессе разработки.
Необходимые файлы для темы и структура каталогов
Каждая тема WordPress должна содержать два основных файла:style.css и index.phpСреди них,style.css Роль этого файла особенно важна: он не только содержит CSS-код, определяющий стиль темы, но и блок комментариев в его заголовке служит своего рода “идентификационным документом” темы для WordPress. Этот блок комментариев должен строго соответствовать определенному формату.
/*
Theme Name: 我的自定义主题
Author: 开发者名称
Description: 这是一个用于演示如何从零开发的自定义WordPress主题。
Version: 1.0.0
Text Domain: my-custom-theme
*/ index.php Это основной шаблон для создания страниц, а также последний уровень защиты в иерархии шаблонов. Когда система WordPress не может найти более конкретный шаблон для текущего запроса…single.phpилиpage.phpКогда это происходит, система возвращается к использованию предыдущей версии (или стандартных настроек).index.phpСледовательно, надежная тема (программная структура) должна включать этот файл.
Рекомендуемое чтение Создание профессионального веб-сайта: полное руководство по созданию пользовательской темы WordPress с нуля.。
Уровни структуры шаблонов и функции самых шаблонов (файлов)
Система шаблонов WordPress представляет собой набор интеллектуальных правил выбора шаблонов. Она автоматически определяет наиболее подходящий шаблон в зависимости от типа страницы, на которую зашел пользователь (главная страница, страница статьи, страница категории и т. д.). Например, при посещении отдельной статьи WordPress ищет подходящий шаблон в следующем порядке:single-post-{slug}.php -> single-post-{id}.php -> single.php -> singular.php -> И в конце концов… index.php。
Помимо двух упомянутых обязательных файлов, полнофункциональная тема (theme) обычно также включает в себя:
* header.phpОпределите заголовочную часть документа, которая должна включать в себя:<head>Районы, логотип веб-сайта и главная навигация.
* footer.phpОпределите содержимое нижней части страницы документа (футера), включающее информацию об авторских правах, вспомогательные ссылки и прочий важный контент.
* functions.phpЭто “мозг” темы (theme’s core component), который отвечает за загрузку стилей скриптов, регистрацию меню и плагинов, а также за определение функций, поддерживаемых данной темой.
* single.phpИспользуется для отображения отдельной статьи.
* page.phpИспользуется для отображения отдельной страницы.
Основные функции и шаблоны для создания тем
После создания базовой структуры файлов следующим шагом является заполнение содержимого этих шаблонных файлов, а также использование основных функций WordPress и “главного цикла” для динамической отображения данных.
Инициализация функций темы происходит в файле functions.php.
functions.php Файлы являются ключевыми элементами функционала темы. Здесь можно добавлять различные функции без необходимости изменения основных файлов WordPress. Стандартный процесс инициализации включает настройку поддержки темы, регистрацию навигационных меню и блоков с полезными инструментами, а также безопасное загрузочное выполнение скриптов и таблиц стилей.
<?php
// 主题初始化设置
function mytheme_setup() {
// 让WordPress管理<title>标签
add_theme_support( 'title-tag' );
// 启用文章特色图像(缩略图)支持
add_theme_support( 'post-thumbnails' );
// 添加对HTML5标记的支持
add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
// 注册一个主菜单位置
register_nav_menus( array(
'menu-1' => esc_html__( '主菜单', 'my-custom-theme' ),
) );
}
add_action( 'after_setup_theme', 'mytheme_setup' );
// 注册小工具侧边栏
function mytheme_widgets_init() {
register_sidebar( array(
'name' => esc_html__( '侧边栏', 'my-custom-theme' ),
'id' => 'sidebar-1',
'description' => esc_html__( '在此添加小工具。', 'my-custom-theme' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
) );
}
add_action( 'widgets_init', 'mytheme_widgets_init' );
// 加载主题的样式表和脚本
function mytheme_scripts() {
// 加载主样式表
wp_enqueue_style( 'mytheme-style', get_stylesheet_uri(), array(), '1.0.0' );
// 加载导航脚本(如果有的话)
wp_enqueue_script( 'mytheme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'mytheme_scripts' );
?> Используйте основной цикл (The Loop) для вывода содержимого.
“Основной цикл” (main loop) является одной из ключевых составляющих шаблонов WordPress – это фрагмент PHP-кода, который отвечает за проверку и обработку статей (или другого контента), которые должны отображаться на текущей странице. Почти все шаблоны для отображения контента используют этот цикл. Ниже приведен пример его реализации…index.phpПростой пример использования основного цикла:
Рекомендуемое чтение Руководство по разработке тем для WordPress: создание собственных тем с нуля。
<?php if ( have_posts() ) : ?>
<div class="posts-container">
<?php while ( have_posts() ) : the_post(); ?>
<article no numeric noise key 1009>
<h2 class="entry-title">
<a href="/ru/</?php the_permalink(); ?>"></a>
</h2>
<div class="entry-meta">
发布于:
</div>
<div class="entry-summary">
</div>
</article>
<?php endwhile; ?>
</div>
<p><?php esc_html_e( '很抱歉,没有找到符合条件的内容。', 'my-custom-theme' ); ?></p> В этом коде,have_posts()иthe_post()Функции контролируют выполнение циклов.the_title()、the_permalink()、the_excerpt()Теги-шаблоны используются для вывода конкретного контента.
Реализация реактивного дизайна и продвинутых функций тем (advanced theme features).
Современная тематика для веб-сайтов требует не только полного набора функций, но и отличного пользовательского опыта. Это включает в себя корректное отображение контента на различных устройствах, а также возможность гибкого удовлетворения индивидуальных потребностей пользователей.
Интеграция реагирующего дизайна (респонсивного лейаута) с мобильной оптимизацией
Для обеспечения того, чтобы ваш сайт был реагирующим (адаптировался к различным устройствам и разрешениям экрана), необходимо работать с кодами на уровне HTML и CSS. В первую очередь, следует…header.phpДокумент был<head>В пределах данного региона необходимо обеспечить наличие мета-тегов, относящихся к видимому области экрана (viewport meta tags).
<meta name="viewport" content="width=device-width, initial-scale=1"> Во-вторых, в вашем…style.cssВ данном примере используются медиаквери (Media Queries) для настройки расположения элементов интерфейса и их стилей в зависимости от ширины экрана. Например, для мобильных устройств боковая панель может быть скрыта.
@media screen and (max-width: 768px) {
#secondary-sidebar {
display: none;
}
.site-main {
width: 100%;
}
} Создание пользовательских шаблонов страниц и подтем (subthemes)
Для удовлетворения особых требований к оформлению одной страницы в WordPress предусмотрена возможность создания пользовательских шаблонов страниц. Например, вы можете создать шаблон полноэкранной страницы без боковых панелей и назвать его…template-fullwidth.phpИ добавьте следующее примечание в начало файла:
<?php
/**
* Template Name: 全宽页面模板
* Description: 一个没有侧边栏的页面模板。
*/ Затем, при редактировании страницы в backend WordPress, вы сможете выбрать этот шаблон страницы “полного размера” в разделе “Свойства страницы”.
Рекомендуемое чтение Полное руководство по разработке тем для WordPress: создание пользовательских сайтов с нуля。
Для того чтобы ваши собственные изменения не были стерты при обновлении основной темы, настоятельно рекомендуется использовать подтемы для разработки. Подтема должна содержать только один…style.cssИ один необязательный (опциональный) элемент.functions.phpПодтематическийstyle.cssВ заголовке обязательно должно быть указано родительское тематическое направление (parent theme).
/*
Theme Name: 我的子主题
Template: parent-theme-folder-name
*/ Интернационализация темы, её оптимизация и подготовка к публикации
Когда разработка подходит к концу, вам необходимо убедиться, что продукт будет легко использоваться пользователями со всего мира и обладает хорошей производительностью. В завершение подготовьтесь к его выпуску.
Реализация интернационализации (i18n) темы
Интернационализация – это процесс перевода вашего тематического контента на другие языки. В WordPress это осуществляется с помощью двух основных функций:__()Для возврата переведенного текста._e()Используйте их для прямого вывода переведенных строк. Необходимо применять их во всех местах, где требуется выполнение перевода, и указывать, в каком контексте это делается.style.cssТекстовое поле, определенное в заголовке (Text Domain defined in the header).
<h2><?php esc_html_e( '最新文章', 'my-custom-theme' ); ?></h2>
<p><?php echo esc_html__( '这是一段示例文本。', 'my-custom-theme' ); ?></p> После этого можно использовать такие инструменты, как Poedit, для создания нужного контента..potПереводите файлы с шаблонами, а также конкретные языковые пакеты (например:.zh_CN.poи.mo(Документация).
Проведение оптимизации производительности и проверки кода
Перед публикацией необходимо оптимизировать производительность сайта. К этому относится сжатие файлов CSS и JavaScript, проверка размеров изображений на соответствие требованиям и их оптимизация, уменьшение количества запросов к базе данных, а также правильное использование системы очередей обработки скриптов и стилей WordPress для избежания прямого включения ресурсов в шаблоны. Кроме того, следует провести полный анализ кода, убедиться, что соблюдаются стандарты кодирования WordPress, отсутствуют ненужные отладочные коды, и все функции работают как ожидается.
резюме
Разработка собственной темы для WordPress с нуля представляет собой систематический процесс обучения, который включает в себя понимание структуры основных файлов, использование шаблонов и главного цикла выполнения кода, а также множество других аспектов, связанных с созданием функциональных и эстетически привлекательных сайтов.functions.phpКомпания CIMC успешно реализовала функциональные возможности сайта, а также применила принципы адаптивного (респонсивного) дизайна; в дальнейшем были проведены работы по интернационализации и оптимизации сайта. Следуя принципу “начинать с простого и постепенно совершенствовать”, сначала была создана минимально функциональная версия сайта, а затем постоянно добавлялись новые шаблоны и функции. Овладев этими навыками, вы сможете создавать уникальные сайты, полностью соответствующие вашим или клиентских требованиям, без ограничений, связанных с использованием готовых тем. Помните: официальная документация и сообщество разработчиков являются вашими лучшими помощниками на пути обучения.
Часто задаваемые вопросы
Для разработки тем для WordPress требуется глубокие знания PHP?
Необходимы прочные знания PHP, но не на уровне эксперта. Вам нужно понимать синтаксис PHP, переменные, массивы, функции и структуры циклов, поскольку шаблоны WordPress в основном состоят из кода на PHP. Самое важное — научиться использовать множество встроенных функций (тегов шаблонов) и хуков (действия и фильтры), предоставляемых WordPress. Это позволяет связать вашу тему с основными функциями системы.
Почему моя пользовательская тема не отображается в фоновом режиме?
Наиболее распространенная причина…style.cssФормат комментариев в заголовке файла неверен или отсутствуют необходимые сведения. Пожалуйста, тщательно проверьте, заполнены ли поля такие как «Theme Name» (Название темы), «Author» (Автор) и другие, а также убедитесь, что формат этих полей соответствует установленным стандартам. Другая причина проблемы может заключаться в том, что папка с темой размещена в неправильном каталоге; она должна находиться в определенном месте.wp-content/themes/Ниже.
Как сделать так, чтобы моя тема поддерживала редактор Gutenberg?
Чтобы ваша тема лучше соответствовала требованиям редактора Gutenberg, вам необходимо выполнить следующие действия:functions.phpНеобходимо добавить соответствующие заявления о поддержке определенных функций/тем. Это включает поддержку широкого выравнивания текста, использования стилей таблиц в редакторе и т. д. Например:
add_theme_support( 'align-wide' ); // 支持宽和全宽对齐
add_theme_support( 'editor-styles' );
add_editor_style( 'style-editor.css' ); // 加载一个用于编辑器的专属样式表 Кроме того, необходимо написать стили для ключевых блоков контента (таких как абзацы, заголовки, кнопки), чтобы они выглядели одинаково как на главной странице сайта, так и в редакторе.
Как мне следует тестировать свой тематический контент (тематические статьи или другие материалы)?
Тестирование должно проводиться с учетом различных аспектов. Во-первых, необходимо проверить внешний вид и функциональность темы в разных браузерах (Chrome, Firefox, Safari, Edge) и на устройствах разных размеров (смартфоны, планшеты, настольные компьютеры). Во-вторых, следует проверить совместимость темы с распространенными плагинами. В-третьих, используя встроенные инструменты WordPress для тестирования тем (XML-файлы с данными), необходимо импортировать большое количество различных типов контента, чтобы оценить поведение темы в экстремальных условиях. Наконец, следует выполнить дополнительные проверки…WP_DEBUGПроверьте, нет ли каких-либо предупреждений или ошибок в PHP.
Что дальше, что дальше?
Расширенное чтение и практические знания
Следующие статьи связаны с темой этой статьи и подходят для дальнейшего углубленного чтения. Зачастую лучше начать с той статьи, которая наиболее близка к вашей текущей проблеме, а затем постепенно переходить к другим темам.
- Полное руководство по созданию веб-сайтов: полный процесс от начала до запуска в сети с подробным описанием технологического стека
- 10 необходимых приемов дизайна и разработки тем для WordPress, способствующих повышению профессионального уровня веб-сайта
- Полное руководство по созданию сайта: полный технологический стек и лучшие практики от планирования до запуска
- Полный гайд по созданию веб-сайтов: полный набор технологий от начала до запуска сайта в сети, а также практические советы по SEO-оптимизации
- Глубокий анализ процесса создания веб-сайтов: от нуля до создания высокопроизводительного корпоративного сайта