WordPress: Как правильно изменять файлы стандартной темы. Дочерняя тема
1. Заводим дочернюю тему
Сперва убедитесь в том, что родительская тема существует — найдите директорию twentyseven
в wp-content/themes
. Затем создайте новую директорию в wp-content/themes
и назовите её my-child-theme
. В этой новой директории создайте файл style.css
и вставьте в него следующий заголовок:
/** * Theme Name: My Child Theme * Template: twentyseven */ @import url('../twentyseven/style.css');
С помощью этого заголовка мы определили название нашей новой темы, а так же указали родительскую. Директива @import
в данном случае подгружает все стили из темы Twenty Seven, поверх которых мы будем вносить наши изменения. Без этой директивы, наша дочерняя тема будет наследовать только шаблоны (разметку) родительской темы, а не стиль.
Зайдя в раздел Внешний вид → Темы, вы увидите, что ваша новая тема уже доступна для активации.
Активируйте её и вы увидите, что дизайн сайта не изменился - значит дочерняя тема верно наследуется от родительской.
2. Работа со стилями
Стили CSS дочерней темы можно задать прямо в файле style.css
сразу после директивы @import
. Например, для установки цвета фона и цвета ссылок в вашей теме, добавьте следующий код в конец файла стилей:
body { background: red; } a { color: green; }
3. Работа с шаблонами
С помощью дочерней темы вы так же можете легко изменять сами шаблоны родительской темы. Для этого достаточно создать файл в дочерней теме с тем же именем, что и у шаблона в родительской теме. Например, чтобы заменить шаблон footer.php
на свой собственный (мне например надоело, что вечно удаляется код яндекс метрики из подвала после обновления wordpress, а устанавливать отдельный плагин для такой мелочи, ну зачем надо), создайте файл footer.php
в директории с вашей дочерней темой:
</div><!-- #main .wrapper --> <footer id="colophon" role="contentinfo"> <div class="site-info"> Текст подвала </div><!-- .site-info --> </footer><!-- #colophon --> </div><!-- #page --> <?php wp_footer(); ?> </body> </html>
4. Работа с functions.php
Самая важная штука. Файл с функциями темы functions.php имеет особое значение для тем WordPress. Вы не можете его полностью заменить в вашей дочерней теме, но вы можете создать свой собственный файл functions.php
, который WordPress исполнит до того как загрузить functions.php
или любой другой шаблон родительской темы.
Это значит, что в вашем файле functions.php
вы можете использовать события, фильтры и так называемые «переопределяемые» функции, для того чтобы манипулировать поведение родительской темы. Например, в файле footer.php
в теме Twenty Twelve вызывается событие twentytwelve_credits
. Чтобы добавить наш собственный текст во время этого события, мы можем использовать следующий код в functions.php
нашей дочерней темы:
<?php function my_child_theme_credits() { echo 'Дополнительный текст подвала'; } add_action( 'twentytwelve_credits', 'my_child_theme_credits' );
Вы так же можете переопределять некоторые функции родительской темы. Например, в теме Twenty Twelve используется функция twentytwelve_content_nav
для отображения навигации по записям. Если вам необходимо изменить поведение этой функции, например использовать навигацию WP-PageNavi, вы можете её переопределить в файле functions.php
в дочерней теме:
function twentytwelve_content_nav( $html_id ) { if ( function_exists( 'wp_pagenavi' ) ) wp_pagenavi(); }
Учтите, что переопределять можно не все функции родительской темы, а только те, которые обёрнуты в условие с функцией function_exists
, например:
if ( ! function_exists( 'twentytwelve_content_nav' ) ) : ... endif;
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Вы можете почитать все статьи от almix'а.
- 0 WordPress: Как скрыть показ записей определенных рубрик на главной странице (23.05.2014)
- 0 WordPress: Добавить ещё одну область виджетов (widget area) в шаблон главной страницы (08.02.2014)
- 0 WordPress: Выводим виджет новостей в теле страницы (вставка виджетов в страницу) (16.11.2013)
- 0 WordPress: Плагин мультиязычности WPML Multilingual CMS (14.06.2013)
- 0 WordPress: Gantry Framework. Тонкий момент с Widgets Override, widget variations. (23.05.2013)
- 0 WordPress: Настройки плагина галереи NextGen Gallery (04.03.2014)
- 0 WordPress: Иконка favicon.ico для области администратора (22.04.2013)
- 0 WordPress. Настройка для локальной работы (27.03.2013)
- 0 WordPress: Добавить ссылку "Сохранить фото" для галереи на NextGen с эффектом Lightbox (12.04.2013)
- WordPress: Как правильно изменять файлы стандартной темы. Дочерняя тема (30.06.2017) ← вы тут
- WordPress: Как выводить свои таксономии на странице. Создаём свои шорткоды. (08.01.2017)
- Wordpress. Как добавить в шаблон собственную область для вывода виджетов (03.01.2017)