Я работаю над плагином, который создает пользовательский тип сообщения, и я бы хотел отобразить собственный шаблон без изменения темы.
Вот упрощенный код, с которым я работаю:
add_filter('template_include', 'my_custom_template'); function my_custom_template($incFile) { global $wp; global $wp_query; if ($wp->query_vars['post_type'] == 'custom-post-type') { $incFile = MY_PLUGIN_TEMPLATES . '/template.php'; } return $incFile; }
Проблема, с которой я сталкиваюсь, заключается в том, что когда allow_url_include отключен в файле php.ini сервера, это вызывает интересную небольшую ошибку:
Предупреждение: include () [function.include]: http: // оболочка отключена в конфигурации сервера allow_url_include = 0 в http: // path \ to \ wp-includes \ template-loader.php в строке 43
Поэтому, я думаю, вопрос в том, есть ли способ отправить шаблон через фильтр template_include, не вызывая эту ошибку allow_url_include?
Благодаря!
Разве я не знаю – 10 минут или меньше, так как я задал свой вопрос, и я обнаружил ответ.
Я пытался определить MY_PLUGIN_TEMPLATES с помощью plugins_dir_url (), теперь он выглядит так и работает:
define( 'MY_PLUGIN_TEMPLATES', dirname( __FILE__ ) . '/templates' );
Благодаря mfields для предложения dirname вместо WP_PLUGIN_DIR.