У меня есть два пользовательских типа записей (например, post_type_1 и post_type_2), которые я хотел бы перенаправить на независимые шаблоны (single-post_type_1.php и single-post_type_2.php) для обработки их отображения. Я не хочу помещать шаблоны отображения в папку темы, поскольку я хочу, чтобы они содержались в соответствующих папках плагинов.
Как я могу заставить каждого из них зарегистрировать ловушку template_redirect, не затрагивая другой? Или я должен использовать другую технику?
В настоящее время я делаю это в плагине 1:
add_action( 'template_redirect', 'template_redirect_1' );
function template_redirect_1() {
global $wp_query;
global $wp;
if ( $wp_query->query_vars['post_type'] === 'post_type_1' ) {
if ( have_posts() )
{
include( PATH_TO_PLUGIN_1 . '/views/single-post_type_1.php' );
die();
}
else
{
$wp_query->is_404 = true;
}
}
}
И это в плагине 2:
add_action( 'template_redirect', 'template_redirect_2' );
function template_redirect_2() {
global $wp_query;
global $wp;
if ( $wp_query->query_vars['post_type'] === 'post_type_2' ) {
if ( have_posts() )
{
include( PATH_TO_PLUGIN_2 . '/views/single-post_type_2.php' );
die();
}
else
{
$wp_query->is_404 = true;
}
}
}
Как только я регистрирую подключаемый модуль template_redirect плагина 2, подключаемый модуль 1 больше не работает.
Я что-то пропустил?
Каков наилучший способ сделать это?