Quantcast
Channel: Создание тем — WP Blogs
Viewing all articles
Browse latest Browse all 2

Дочерние темы WordPress: полное руководство

$
0
0

В WordPress есть одна уникальная возможность: можно создать тему, которая наследует все свойства и шаблоны основной темы, но имеет свой дизайн и свои особенности или дополнения: шаблоны, настройки, да что угодно. Давайте подумает об этом более абстрактно, отстранившись от WordPress. Вполне естественно, что программисты стремятся к повторному использованию кода, создают библиотеки, да и вообще в ООП (объектно ориентированное птем для бесплатных тема с сайтрограммирование) включено наследование. Создание класса-наследника — вполне распространенная практика. Никому не приходит в голову сопротивляться этому подходу или недооценивать мощность этих моделей. Но многие считают, что к WordPress эти принципы не применимы: достаточно взять готовую тему, переправить ее файлы, внести изменения в исходные коды и готово. Именно так и поступает большинство пользователей к нашему сожалению. Я хочу убедить вас в обратном, давайте рассуждать о дочерних темах по-порядку. Представим, как себя чувствуют и что думают пользователи и программисты, чтобы понять этот феномен.

Почему не хотят использовать дочерние темы?

На сайте WordPress.org рекомендуют создавать дочерние темы, в жизни дизайнеры редко используют дочерние темы в своей практике. Какие же причины стоят за этим?

  • Первая причина — это лень: чтобы создать дочернюю тему нужно совершить хоть и несложные, но немного не очевидные действия. С первого взгляда не ясно, для чего нужны дочерние темы. А мы никогда не делаем то, что не является для нас необходимой очевидностью.
  • Вторая причина — это незнание, но если вы прочитаете эту статью до конца, то с этим будет покончено.
  • Третья причина — это привычка: человек все старается делать именно так как привык и как у него получается. Нам не ясно, для чего переходить на другие методы, пока все и так работает. На вопрос «зачем» я постараюсь ответить в следующем разделе.
  • Четвертая причина — отсутствие навыков программирования и верстки. Для создания дочерней темы все же понадобится написать как минимум несколько строк кода. Потому людям, далеким от этого, может быть сложно понять, в чем тут дело и как это настроить.
  • Пятая причина — отсутствие навыков программирования WordPress. Даже если вы верстаете сайты много лет, но не знаете особенностей этой CMS, можно легко запутаться и пойти по неверному пути. Но нам нужно понять только то, что в кодексе нет ничего лишнего, на первой странице раздела о создании тем рекомендуется создавать дочерние темы и это не спроста. А потому будем разбираться дальше.
  • Шестая причина — незнание о том, как на самом деле просто создавать дочерние темы WordPress.
  • Седьмая причина — предрассудки о том, что дочерняя тема не полноценна сама по себе.
  • Восьмая причина — страх перед тем, что автор внесет изменения в основную тему и испортит дизайн и работоспособность дочерней темы.

Для чего нужно использовать дочерние темы WordPress

Для начала давайте представим ситуацию, в которой дочерняя тема не используется. Возьмем тему, скачаем ее с сайта WordPress.org и будем делать правки сразу в исходном коде. Итак, мы поменяли css темы, внесли правки в шаблоны, где-то добавили счетчик, где-то рекламный баннер. После этого установили тему на сайт и стали пользоваться. Но дело в том, что WordPress постоянно развивается и изменяется. И вот, прошло какое-то время, вышла новая версия WordPress, а потом и обновления оригинальной темы с правками, дополнениями и исправлениями ошибок. Нам стали поступать предложения об обновлении темы и самого движка от сайта WordPress.org. Теперь, если выполнить обновление, то все изменения, внесенные в шаблоны этой темы, исчезнут. И что же делать? Если мы еще до внесения правок создадим дочернюю тему, то все встает на свои места.

Итак, для чего нужны дочерние темы?

  • Первая и основная причина — это обновления. Дело в том, что темы состоят из большого количества файлов и являются довольно-таки сложными программами. Если обновить тему, в которую ранее были внесены изменения, то эти изменения просто исчезнут. Обновления выполняют несколько функций:
    1. Исправление ошибок. Авторы обычно исправляют ошибки, когда они обнаруживаются.
    2. Обновление темы автором для совместимости со стандартами текущей версией WordPress. Старые темы могут быть несовместимы с последними стандартами тем WordPress, к тому же в них могут быть уязвимости, которые подвергают сайт риску.
    3. Внесение дополнительных улучшений в тему. Авторы могут дорабатывать темы.
  • Вторая причина — это повторное использование кода: вместо того, чтобы создавать WordPress тему с нуля, можно воспользоваться уже готовыми шаблонами. А если есть свои оригинальные темы, то для установки их на тот или иной сайт и дальнейшей тонкой настройки можно создавать дочернюю тему, потому что производить поправки и изменения в дочерней теме очень удобно, т.к. все изменения хранятся в отдельном файле, что позволяет быстро увидеть отличия и вспомнить причину внесения изменений при необходимости. Например, на этом сайте стоит дочерняя тема WordPress.org темы Jehanne.
  • Третья причина состоит в том, что создать дочернюю тему со своим дизайном может и новичок в WordPress, знаний css для этого вполне достаточно. Это станет ясно далее.
  • Четвертая причина — время разработки и количество ошибок значительно сокращаются.

Создать дочернюю тему просто!

Инструкцию о создании дочерней темы можно найти в кодексе.
Предполагаю, что у вас уже есть тема, которая вам подходит, но вы хотите сделать некие персональные изменения в ней. Итак, что нам нужно знать?

Где хранятся файлы

Во-первых, потребуется найти место хранения файлов темы. Опишу это вкратце: тема состоит из файлов шаблонов, все файлы хранятся в папке, которая обычно называется так же как и сама тема. Эта папка лежит в поддиректории «\wp-content\themes\» установки WordPress на сервере. Распространяется темы в .zip архиве с таким же названием. Итак, чтобы установить тему ее нужно распаковать в папку «\wp-content\themes\», после чего она появляется в административной панели WordPress и станет доступна для активации на сайте.

Как WordPress идентифицирует разные темы?

У каждой темы, у дочерней и основной, есть обязательный файл — style.css. В этом файле хранятся CSS стили темы, но в самом начале есть очень важный комментарий, который используется WordPress для получения мета-информации о теме, отсюда WordPress получает основную информацию о теме, на основе которой она отображается в администраторе. Файл style.css дочерней темы хранит точно такую же информацию о теме как и файл основной темы (название, описание, об авторе, информация о переводе, ссылки, лицензия и т.д.), но есть еще один дополнительный параметр — template, в котором указывается название основной темы. Из этого параметра WordPress узнает, с какой темой связать нашу дочернюю. Итак, для дочерней темы нужно указать 2 параметра в комментарии: Template и Theme Name. Кроме этого, если тема создается не для личного использования, хорошо бы заполнить и остальную информацию, подробно об этом в кодексе (дополнительные поля рекомендуется заполнять, но и без них тема будет работоспособной).

Для чего нужен файл functions.php?

Вторым (из двух необходимых, все не так страшно) обязательным файлом дочерней темы является файл с функциями. Здесь речь идет о небольшом программировании, наверное, это самый сложный для понимания этап в создании дочерней темы. В этом файле потребуется прописать подключение стилей родительской темы. Проще говоря, нам нужно подключить файл style.css со стилями дочерней темы и не просто подключить, но подключить его после подключения стилей родительской темы, чтобы можно было спокойно изменять дизайн в дочерней теме. Для этого нам понадобится один хук и одна функция, загружающая стили родительской и дочерней тем. Вообщем-то и все.

Создание файлов темы

1. Придумайте новое, уникальное имя для темы.
2. Создать папку с этим именем в поддиректории «\wp-content\themes\» установки WordPress.
3. Создать файл style.css (пустой) и заполните заголовок для дочерней темы

/*
 Theme Name:   <Уникальное имя дочерней темы>
 Template:     <Название родительской темы как оно выглядит в названии папки (без пробелов и больших букв)>
*/


4. Создать файл function.php и прописать в нем подключение стилей родительской темы. Для этого в той же папке создается пустой файл function.php и подключаются стили основной и дочерней тем:

function name_enqueue_styles() {
    wp_enqueue_style( 'name-parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'name-style', get_stylesheet_uri(), array( 'name-parent-style' ) );
}
add_action( 'wp_enqueue_scripts', 'name_enqueue_styles' );

Добавлено: чтобы дочерний стиль не загружался два раза, его можно отсоединить , добавив в дочернюю тему следующие строчки:

function name_dequeue_styles() {
	
	wp_dequeue_style( 'parent-style' );
	
}
add_action( 'wp_print_styles', 'name_dequeue_styles' );

где значение ‘parent-style’ берется из родительской темы.

5. Основная тема должна быть на сервере в папке themes, но если речь идет о теме с сайта WordPress.org, то родительская тема загрузится автоматически во время активации.
Этого достаточно, если родительская тема имеет всего один файл стилей. Если же их больше, тогда нужно подключить все файлы. Обратите внимание, что имя функции начинается со слова «name», в WordPress так принято именовать функции плагинов и тем: в названии каждой функции, глобальной переменной или класса делать приставку с название темы. Это сделано, чтобы избежать конфликтов с другими плагинами. Если будет установлен плагин, в котором встречается функция с таким же именем, то произойдет критическая ошибка php. Далее, при загрузке файла style.css дочерней темы указано явно, что этот файл загружается после файла стилей основной темы — «name-parent-style». Сама функция цепляется к WordPress хуку wp_enqueue_scripts.
5. После сохранения файлов дочерняя тема появится в администраторе и теперь ее можно активировать и использовать. (Меню: Внешний вид >> Темы).

На этом все

Теперь можно писать произвольные стили css в файл style.css дочерней темы и изменять дизайн. Это новая дочерняя тема. Ее файл стилей загружается после файла style.css родительской темы, а значит имеет приоритет. Таким образом создается самая простая дочерняя тема.

О каких темах идет речь?

Речь идет о создании дочерних тем для бесплатных тем с сайта WordPress.org и своих личных тем, в которых планируется делать поправки для основной темы в будущем, чтобы избежать совершения таких поправок на каждом отдельном сайте. Дело в том, что WordPress соединен с сайтом WordPress.org и сам отслеживает появление новых версий, предлагая произвести обновление. Для своих тем придется обеспечить обновление основной темы самостоятельно. С другими темами не все так гладко.

Деривативные темы

Если в шаблонах производится очень много изменений и тема становится совершенно другой, есть смысл создать копию темы с новым именем вместо дочерней темы и уже для нее делать дочерние темы для отдельных сайтов.

Для начинающих

Если вы только начали изучать WordPress или далеки от программирования сайтов в принципе, но хотите делать небольшие поправки в шаблоне, тогда делать это именно в дочерней теме принципиально важно.

Запись Дочерние темы WordPress: полное руководство впервые появилась WP Blogs.


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images