Поддержка Темы и шаблоны Принципы шаблонов BuddyPress, bbPress, WooCommerce. Как устроена их а

  • Читаю везде о том что у этих плагинов есть специальные папки с шаблонами.

    Я так понимаю что по умолчанию при загрузке страниц, механика устроена таким образом, что подключаются эти шаблоны из папки плагина, вместо папки темы.

    Если тема поддерживает эти компоненты, то будут подгружены шаблоны из темы.

    Я читал инструкции по bbPress, BuddyPress, но так ничего и не понял.

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

    Мне хочется понять 2 вопроса:
    1. пример копирования шаблона от куда и куда, чтобы этот шаблон поменять в некой дочерней теме и получить результат в виде измененного дизайна. Я могу скопировать только один шаблон, а остальные пусть подгружаются из плагина? Куда мне его скопировать? 🙂
    2. какова механика такого определения? как система понимает что вот этот шаблон нужно брать из темы, а вот этот из плагина? вроде бы в стандартном механизме иерархии шаблонов речь только о теме, значит тут применен какой то собственный алгоритм. На сколько сложный код реализует такую схему?

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • печаль усугубляется тем что дебаггер шаблона уверен что загрузил page.php http://take.ms/KtqwD7

    хотя мы видим по содержимому, что от page.php там только название 🙂

    1. Скопировать можно только тот 1 файл, который вы хотите изменить. Все остальные буду вытягиваться из плагина. Копировать в папку темы соблюдая иерархию. Для BuddyPress — внутрь папки /buddypress/ внутри темы.
    2. Всегда делается проверка, есть ли в текущей теме файлы, необходимые для вывода данных. Если есть — использовать их. Если нет — загрузить файлы по умолчанию (внутри плагина, обычно в /templates/, или в /theme/ | /themes/)

    А что мешает открыть отладчик Хрома или файербаг. Изьять кусочек разметки и запустить поиск по файлам в нотепад++ или геани по этому фрагменту. Искомый шаблон найдется 100%. А дальше Google и Codex WordPress.

    Понятно что я могу пробежаться по всей схеме обработки. Но вот на buddypress потратил пол часа и даже не нащупал хоть какой то логики. Там от одной функции к другой схема прыгает и я потерялся.

    Вот мой код http://pastebin.com/4A4GJxcE

    Он просто берет и выводит шаблоны, заданные в плагине.

    А хочется понять как проще реализовать такой механизм:
    1. если активирована дочерняя, проверка шаблона в дочерней
    2. если нет в дочерней, проверяем в родительской
    3. если нет в родительской, берем шаблон из плагина

    Но! Тут подозреваю что просто такой алгоритм может печально сказаться на производительности.
    Может быть есть какие то методы его оптимизации?
    Подозреваю что это как то связано с функцией add_theme_support( ‘buddypress’ )

    Вообще, было бы круто какой то пример посмотреть… иначе сломаю себе мозг, будет на вашей совести 🙂

    А вот и понял 🙂

    Решено!

    Вот так работает как надо http://pastebin.com/aQJDpD0L

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Принципы шаблонов BuddyPress, bbPress, WooCommerce. Как устроена их а» закрыта для новых ответов.