Свой шаблон записи(single) для плагина в WordPress

Разработка плагинов1 комментарий

Когда наступает время создать пользовательский тип записи в плагине WordPress, всегда возникает одна и та же проблема: нужно создать пользовательский single-[cpt_slug].php файл в папке для тем, в том случае, если не хочется использовать созданный по умолчанию файл single.php из вашей выбранной темы.

В этой статье я бы хотел осветить два аспекта использования пользовательских шаблонов. Первым делом покажу, что мы можем работать с пользовательским файлом, составленным в самом плагине, вместо того, чтобы загружать созданный по умолчанию single.php. Затем я объясню, как создать ваш собственный пользовательский файл в папке для тем.

Многие плагины, как например Easy Digital Downloads или Shopp, используют следующий метод: плагин проверяет, задали ли вы пользовательский шаблон в папке тем; если это тот случай, то файл загружается, если нет, то загружается созданный по умолчанию файл шаблона плагина. В обоих случаях созданный по умолчанию для темы файл single.php не загружается.

 

Задаем плагин и его структуру

Самый первый шаг — создать плагин, давайте назовем его: «Template Chooser» (Выбор шаблона)

Создайте папку «template-chooser» в директории /wp-content/plugius/ имеющую следующую структуру:

template_chooser_structure

 

 

 

 

 

 

Структура плагина

Затем откройте основной файл template-choose.php и вставьте следующий код заголовка плагина:

 

Задаем константы плагина

Позже в плагине нам понадобится легко извлекать его URL и его путь, вот почему необходимо задать несколько констант:

 

Прописываем пользовательский тип записи

Чтобы пойти дальше, нам придется установить новый пользовательский тип записи.

Давайте создадим пользовательский тип записи «Отзыв» с некоторыми очень простыми сопровождениями и свойствами. Так как цель статьи не научить, как создать пользовательский тип записи, то я буду использовать простой красивый код, разделенный на 3 части: метки, сопровождения и аргументы пользовательского типа записи.

Все это выстраивается в одну функцию:

 

Не используем созданный по умолчанию файл single.php

Теперь, когда наш пользовательский тип записи прописан, нам нужно создать функцию, которая скажет WordPress не использовать из темы файл по умолчанию single.php.

Это все потому, что по умолчанию, при отображении пользовательского типа записи во внешнем интерфейсе, WordPress проверит, существует ли файл single-testimonial.php и загрузит его. Если нет, то он будет искать single.php. Но мы не хотим использовать ни один из них.

Мы хотим, чтобы WordPress загружал пользовательский файл из плагина. Для этого нам придется подключить новую функцию к фильтру «template_include». В этой функции заложена цель – проверять тип сообщения и действовать исходя из результатов проверки:

 

Загружаем верный шаблон

Как вы могли заметить, в строчке 33 мы вызываем новую функцию rc_tc_get_template_hierarchy(). Это функция, которая проверит, загрузил ли WordPress пользовательский файл из плагина или шаблон из папки для тем.

Обратите внимание, что, когда я говорю о «шаблоне из папки для тем», я имею в виду пользовательский файл, загруженный вместо single.php.

Допустим, вы хотите не загрузить шаблон, встроенный в плагин, а создать ваш собственный. Все, что вам нужно будет сделать, — это создать новую папку в папке для тем, назвать ее «plugin_template», и внутри этой папки создать файл single.php. Это будет ваш новый файл по умолчанию single.php, загруженный только для отзывов, отображающихся во внешнем интерфейсе.

Вы все еще со мной? Ок, давайте создадим функцию:

 

Шаблон плагина по умолчанию

Теперь создаем новый отзыв в панели администрирования. Затем открываем includes/templates/ single.php, копируем и вставляем простой код:

Если вы видите отзыв во внешнем интерфейсе, то должны увидеть надпись «we are in the plugin custom file». Это то, чего мы хотим. Но если файл шаблона плагина не удовлетворяет ваши пожелания или если вы просто хотите создать более индивидуальный дизайн, то можете создать файл в папке для тем.

 

Шаблон темы по умолчанию

Чтобы создать пользовательский шаблон, который не использует шаблон по умолчанию из плагина, вы можете создать новую папку с именем «plugin_templates» в вашей папке для тем. Создайте новый файл, названный single.php, и вставьте этот код:

 

Заключение

Что же именно мы сделали? Итак, мы создали плагин, который прописывает пользовательский тип записи «Отзыв». Мы добились функциональных возможностей, чтобы загрузить пользовательский файл, который хранится в папке для плагинов, вместо созданного по умолчанию single.php или single-testimonial.php из папки для тем. Мы также распорядились загружать пользовательский файл, расположенный в папке «plugin_templates» вместо папки для тем.

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

Исходный код: template-chooser

Перевод статьи: code.tutsplus.com


1 Комментарий к этой статье

Добавить комментарий

Войти с помощью: