Eu tenho dois tipos de postagem personalizados (por exemplo, post_type_1 e post_type_2) que gostaria de redirecionar para modelos independentes (single-post_type_1.php e single-post_type_2.php) para lidar com a exibição deles. Não quero colocar os modelos de exibição na pasta do tema, pois quero que eles sejam independentes em suas respectivas pastas de plug-ins.
Como posso fazer com que cada um deles registre um gancho template_redirect sem afetar o outro? Ou devo usar uma técnica diferente?
Atualmente, estou fazendo isso no plug-in 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;
}
}
}
E isso no Plugin 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;
}
}
}
Depois de registrar o gancho template_redirect do plug-in 2, o plug-in 1 não funciona mais.
Estou esquecendo de algo?
Qual é a melhor maneira de fazer isso?