Глибока настройка дочірніх тим 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" і повідомив про це системі.

Згідно з документацією обробник приймає один параметр (текст-оригінал) і повинен повернути змінну з обробленим текстом.

Повний список фільтрів (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 саме так, як Вам це треба. Успіхів!

Схожі статті