Я хочу проверить соответствующий шаблон в папке темы, прежде чем вернуться к файлу в каталоге моего плагина. Вот мой код:
add_filter ('template_include', 'sermon_template_include'); function sermon_template_include ($ template) { if (get_query_var ('post_type') == 'wpfc_sermon') { if (is_archive () || is_search ()): if (file_exists (TEMPLATEDIR. '/archive-wpfc_sermon.php')) вернуть ШАБЛОН. '/Archive-wpfc_sermon.php'; вернуть dirname (__ FILE__). '/Views/archive-wpfc_sermon.php'; еще: if (file_exists (TEMPLATEDIR. '/single-wpfc_sermon.php')) вернуть ШАБЛОН. '/Single-wpfc_sermon.php'; вернуть dirname (__ FILE__). '/Views/single-wpfc_sermon.php'; ENDIF; } вернуть $ шаблон; }
Проблема в том, что это не работает! :-) Он всегда выбирает файл в папке моего плагина. Есть идеи, что делать? Я пробовал много вариантов, но я не могу заставить что-то работать! Заранее спасибо! Джек
РЕДАКТИРОВАТЬ
Я ожидаю, что archive-wpfc_sermon.php будет возвращен из папки темы, если она существует. Тем не менее, файл из моего плагина всегда возвращается. Спасибо за вашу помощь! Это из моего плагина Sermon Manager, доступного в репозитории.
Ответы:
Итак, я не уверен точно, что является причиной проблемы, но вы можете попробовать следующее:
dirname(__FILE__)
наplugin_dir_path( __FILE__ )
TEMPLATEDIR
наget_stylesheet_directory()
Вполне возможно, что проблема возникает из-за прямой ссылки на константы.
источник
Я не уверен, будет ли это работать для вас, но это стоит попробовать. Я использую это все время для своих пользовательских типов сообщений, когда им требуется специальный шаблон.
Все, что вам нужно сделать, это добавить этот скрипт в ваш файл functions.php и поместить файл шаблона в каталог вашей темы.
Это может стоить выстрела и не может вызвать конфликт с вашим плагином. Однако я не уверен в этом.
Я забыл ... не забудьте добавить действие. :)
источник