Tengo dos tipos de publicaciones personalizadas (por ejemplo, post_type_1 y post_type_2) que me gustaría redirigir a plantillas independientes (single-post_type_1.php y single-post_type_2.php) para manejar su visualización. No quiero poner las plantillas de visualización en la carpeta de temas, ya que las quiero en sus respectivas carpetas de complementos.
¿Cómo puedo hacer que cada uno de ellos registre un enlace template_redirect sin afectar al otro? ¿O debería estar usando una técnica diferente?
Actualmente, estoy haciendo esto en el complemento 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;
}
}
}
Y esto en el complemento 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;
}
}
}
Una vez que registre el gancho template_redirect del complemento 2, el complemento 1 ya no funciona.
¿Me estoy perdiendo de algo?
¿Cuál es la mejor manera de hacer esto?