Mam dwa niestandardowe typy postów (np. Post_type_1 i post_type_2), które chciałbym przekierować do niezależnych szablonów (single-post_type_1.php i single-post_type_2.php), aby obsłużyć ich wyświetlanie. Nie chcę umieszczać szablonów wyświetlania w folderze motywów, ponieważ chcę, aby były one zawarte w odpowiednich folderach wtyczek.
Jak mogę zmusić każdego z nich do zarejestrowania hooka template_redirect bez wpływu na drugi? A może powinienem używać innej techniki?
Obecnie robię to we wtyczce 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;
}
}
}
A to we wtyczce 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;
}
}
}
Po zarejestrowaniu haka template_redirect wtyczki 2 wtyczka 1 przestaje działać.
Czy coś brakuje?
Jak najlepiej to zrobić?