WordPress: рабочие настройки и полезные возможности
Что здесь собрано
Не справочник по всему WordPress, а рабочая подборка возможностей и настроек, которые используются при создании и поддержке собственных тем.
Структура темы WordPress
WordPress выбирает шаблон страницы по собственной иерархии. Поэтому структура темы определяет не только расположение файлов, но и то, какой шаблон будет использован в конкретной ситуации.
Чем понятнее разделены шаблоны и повторяющиеся части, тем проще поддерживать проект и расширять его без дублирования разметки.
WordPress автоматически ищет подходящий файл темы в зависимости от типа открытой страницы.
- front-page.php — главная страница сайта
- home.php — страница записей блога
- page.php — обычные страницы
- single.php — отдельная запись
- archive.php — архив записей
- category.php — архив категории
- 404.php — страница ошибки 404
- index.php — резервный шаблон темы
Если более точного шаблона нет, WordPress постепенно переходит к общим вариантам и в крайнем случае использует index.php.
Повторяющиеся части сайта не нужно копировать в каждый шаблон.
- header.php — шапка и начало документа
- footer.php — подвал и завершающая часть страницы
- get_header() — подключение header.php
- get_footer() — подключение footer.php
Такой подход позволяет менять общую часть сайта в одном месте, не редактируя каждый шаблон отдельно.
Повторяющиеся блоки можно выносить в отдельные файлы и подключать через get_template_part().
Это удобно для карточек записей, элементов каталога, блоков страницы и других частей, которые используются в нескольких шаблонах.
Разметка остается в одном файле, поэтому изменения не приходится повторять в каждом месте ее использования.
functions.php используется для настройки возможностей темы и подключения ее логики.
Здесь обычно размещаются:
- подключение стилей и скриптов
- регистрация меню
- поддержка возможностей темы
- регистрация типов записей и таксономий
- фильтры и хуки
- настройки админки
Разметку страниц в functions.php переносить не стоит. Файл отвечает за функциональность темы, а вывод контента остается в шаблонах.
Подключение стилей и скриптов
WordPress имеет собственный механизм подключения CSS и JavaScript. Он управляет зависимостями, порядком загрузки и позволяет плагинам корректно работать с файлами темы.
Поэтому файлы лучше подключать через системные функции, а не добавлять теги link и script непосредственно в шаблоны.
Для CSS используется wp_enqueue_style(). WordPress регистрирует файл и выводит его в нужном месте страницы.
При подключении можно указать зависимости, версию и адрес файла. Это позволяет контролировать порядок загрузки и обновление кеша после изменений.
Если один файл зависит от другого, зависимость лучше указывать при подключении, а не рассчитывать только на порядок строк в functions.php.
Для JavaScript используется wp_enqueue_script().
Здесь также задаются зависимости и версия файла. Скрипт можно подключить в нижней части страницы, чтобы он не блокировал загрузку основного содержимого.
Такой способ особенно важен, если тема использует библиотеки или скрипты плагинов: WordPress может определить уже подключенные зависимости и не загружать их повторно.
Браузер может продолжать использовать старую версию CSS или JavaScript из кеша даже после изменения файла.
Версия в параметрах подключения меняет адрес ресурса для браузера и позволяет получить обновленный файл без ручной очистки кеша у каждого пользователя.
JavaScript иногда нужны данные, которые существуют только на стороне WordPress: адрес AJAX, nonce, URL темы или значения из настроек сайта.
Их лучше передавать из PHP при подключении скрипта, а не прописывать адреса вручную внутри JavaScript.
Тогда скрипт не зависит от конкретного домена или расположения сайта и продолжает работать после переноса проекта.
Возможности темы
Часть возможностей WordPress тема должна явно подключить. После этого они становятся доступны в админке и шаблонах.
Лучше использовать встроенные механизмы там, где WordPress уже решает задачу самостоятельно, вместо создания параллельной системы внутри темы.
Тема может зарегистрировать одну или несколько областей меню: основное, мобильное, меню в подвале и другие.
После регистрации пользователь управляет составом и порядком пунктов через админку WordPress, а шаблон только выводит выбранное меню.
Ссылки не приходится хранить непосредственно в header.php, поэтому изменение структуры сайта не требует правки шаблона.
Поддержка миниатюр добавляет стандартное поле изображения для записей и пользовательских типов контента.
Тема может использовать исходное изображение или зарегистрированные размеры для карточек, архивов и других элементов интерфейса.
WordPress поддерживает управление логотипом через настройки темы.
Это удобно для проектов, где изображение должен менять пользователь: адрес файла не хранится в шаблоне, а берется из настроек сайта.
Если логотип является частью жестко заданной дизайн-системы и не должен редактироваться, отдельное управление им может быть лишним.
Поддержка title-tag передает управление содержимым тега title самому WordPress и SEO-плагинам.
В этом случае title не нужно собирать вручную внутри header.php. WordPress определяет нужное значение в зависимости от текущей страницы.
Настройка админки WordPress
Админку можно адаптировать под структуру конкретного проекта: добавлять собственные разделы, выбирать их положение и убирать элементы, которые не нужны пользователю.
Задача не в том, чтобы спрятать WordPress, а в том, чтобы оставить понятный интерфейс для работы с контентом.
Dashicons — встроенный набор иконок WordPress. Они используются в административной панели и подходят для собственных пунктов меню.
Иконка задается системным названием, например dashicons-admin-generic, dashicons-admin-tools или dashicons-portfolio.
Отдельный файл изображения для такой иконки загружать не требуется.
При регистрации собственного раздела можно указать его позицию в левом меню админки.
Основные позиции стандартных разделов:
- 5 — Записи
- 10 — Медиафайлы
- 20 — Страницы
- 60 — Внешний вид
- 65 — Плагины
- 70 — Пользователи
- 80 — Инструменты
- 90 — Настройки
Например, значение 21 позволяет расположить собственный раздел рядом со страницами, а 61 — после раздела «Внешний вид».
В административное меню можно добавлять собственные страницы верхнего уровня или подпункты существующих разделов.
Это используется для настроек темы, служебных страниц, данных проекта и других интерфейсов, которым не подходит стандартная структура записей и страниц.
Отдельный раздел имеет смысл создавать только тогда, когда он действительно упрощает работу с данными. Еще один пункт меню сам по себе удобства не добавляет.
Если клиент работает только с определенными разделами, часть административного интерфейса можно упростить.
Например, скрыть неиспользуемые пункты меню, убрать лишние панели на экране редактирования или переименовать собственные разделы понятным для проекта образом.
При этом скрытие элемента интерфейса не заменяет настройку прав пользователя. Ограничение доступа и визуальное упрощение админки решают разные задачи.
Раздел будет пополняться
Здесь останутся именно рабочие возможности WordPress, которые удобно иметь под рукой при разработке собственных тем.
В дальнейшем добавлю отдельные материалы по хукам, пользовательским типам записей, таксономиям, WP_Query, AJAX и другим механизмам WordPress.
Большие темы имеет смысл разбирать отдельно, а не складывать все возможности системы на одну страницу.
Материалы сгруппированы не по устройству WordPress в целом, а по практическим задачам разработки.
Как WordPress выбирает файлы темы и как организовать повторяющуюся разметку.
Как подключать ресурсы и использовать встроенные возможности системы.
Как организовать интерфейс WordPress под структуру конкретного проекта.
WordPress слишком большой, чтобы превращать одну страницу в энциклопедию. Здесь остаются только темы, к которым есть смысл возвращаться во время реальной разработки.