РАБОТАЮ ВО ВСЕХ ГОРОДАХ РОССИИ

ВРЕМЯ РАБОТЫ С 9:00 ДО 20:00

Глубокая настройка дочерних тем Genesis

Уже не в первый раз меня просят помочь внести специфические изменения в дочерние темы Genesis. Действительно, изменение дочерней темы фреймворка является делом специфическим, подчиняющимся определённым правилам и отличающимся от правки обычной темы для WordPress. Чтож, как говорится, по просьбам трудящихся, и в частности, пользователя shurche, попробую раскрыть секреты глубокой настройки дочерних тем Genesis.

Для того чтобы понимать, что и как делать, необходимо знать и понимать как работают дочерние темы Genesis. Не углубляясь в дебри, попробую объяснить на пальцах основное – необходимое для понимания процесса внесения изменений.

Если открыть папку дочерней темы Genesis, откроется, на первый взгляд, довольно странная картина — файлов практически нет. А в самих файлах практически отсутствует HTML-код, только PHP слегка разбавленный HTML. Это означает, что дочерние темы сами не строят HTML выводимой страницы, а всю основную работу перекладывают на сам фреймворк, что является абсолютно правильным подходом. “Своими” у дочерней темы, обычно, являются файлы style.css, functions.php и home.php.

Грубо говоря, алгоритм построения HTML страницы выглядит так:

  • Загружается таблица стилей style.css.
  • Загружаются и исполняются необходимые функции Genesis и текущей дочерней темы (functions.php)

Строится HTML код страницы либо на базе дочерней темы. Если есть соответствующий шаблон (например home.php) то по шаблону дочерней темы, если нет – по дефолтному шаблону Genesis.

Кроме того в Genesis есть очень много “действий” (actions) и фильтров (filters), практически на любой случай. Исходя из всего вышесказанного можно сделать вывод: самый лучший способ внести специфические изменения в шаблон дочерней темы Genesis – это использовать встроенные actions и filters и делать это нужно в файле functions.php! Конечно, можно править и файлы шаблонов страниц темы, но что там править-то … Кода практически нет … А вот править дефолтные шаблоны Genesis я Вам крайне не советую. Во-первых, при обновлении Вы потеряете все внесённые изменения. Во-вторых, потеряете универсальность фреймворка – при смене темы придётся всё править заново.

Перейдём к конкретным примерам использования actions и filters в дочерних темах Genesis.

Фильтры

Начнём с фильтров.

Задача: изменить строку копирайта в футере (убрать ссылки на StudioPress и вообще уменьшить количество ссылок – в оригинале их слишком много).

Что было сделано …

Обычно строка копирайта выводится с помощью Genesis, именно Genesis а не дочерней темой, по заданному шаблону, но перед выводом применяется фильтр “genesis_footer_creds_text“, если обработчик фильтра определён, выводится “фильтрованный” текст, если нет – выводится текст заданный по-умолчанию. Я задаю фильтру “genesis_footer_creds_text“ обработчик – функцию “church_footer_creds_text” и сообщаю об этом системе.

 

Согласно документации обработчик принимает один параметр (текст-оригинал) и должен возвратить переменную с обработанным текстом.

Для того, чтобы было интереснее, я привёл код реального обработчика фильтра из темы своего блога. Фильтр строит даты копирайта (год написания первой статьи – текущий год), имя блога, стандартная строка копирайта, ссылка на вход/выход (login/logout). 

Полный список фильтров (filters)фреймворка Genesis можно найти на сайте StudioPress.

Действия (actions)

Обычно, в темах StudioPress первичное и вторичное меню навигации располагаются под областью заголовка – это одно из общепринятых расположений. Другое общепринятое расположение подразумевает расположение первичного меню над областью заголовка, а вторичного меню под областью заголовка. Если Вам вдруг захочется иметь такое расположение меню навигации, Вы можете сделать следующее:

Что было сделано …

Всё очень просто … Я отключил вывод первичного меню навигации ниже области заголовка с помощью action genesis_after_header и включил вывод этого меню над областью заголовка с помощью action genesis_before_header. Вот и всё … И это действительно очень просто …

Полный список actions (hooks) фреймворка Genesis можно найти на сайте StudioPress.

Дополнительные параметры дочерней темы

Иногда появляется необходимость добавить один два параметра к параметрам изменённой темы. В этом тоже нет ничего сложного – всё уже предусмотрено.

Что сделано …

Добавляем новый контейнер и новый параметр с помощью action WordPress “admin_menu” и функции add_meta_box. Затем определяем как будет выглядеть новый параметр на странице параметров с помощью HTML кода. Так же определяем значение по-умолчанию нового параметра с помощью фильтра “genesis_theme_settings_defaults“. И, конечно, определяем функцию для использования нового параметра.

Это пример реального параметра написанного мной для использования нескольких тем цветового оформления в модифицированной теме Church Child 1.0. Для версии Church Child 1.1+ этот код не актуален, так как выбор цветовой схемы в версиях 1.1+ задан разработчиком …

Я не даю готовых рецептов, но надеюсь, что примеры, приведённые выше, помогут Вам настроить Вашу дочернюю тему Genesis именно так, как Вам это надо. Удачи!

Мне очень понравилась публикация и я хочу еще дать ссылки на другие статьи этого автора:

  • Настройка Genesis 
  • Genesis и его дети
  • WordPress темы Church Child и Lifestyle Child 

https://blogcoding.ru/wordpress/themes/genesis/nastrojka-genesis/



* Нажимая на кнопку "Отправить" я соглашаюсь с политикой конфиденциальности

Создание сайта

Сделать веб-сайт по приемлемым ценамЗаказать создание сайта под ключ. Цена: недорого.

]]>eTXT]]>

Сервис анализа и проверки траста xt сайтов в Яндексе