ฉันมีโพสต์ที่กำหนดเองสองประเภท (เช่น post_type_1 และ post_type_2) ที่ฉันต้องการเปลี่ยนเส้นทางไปยังเทมเพลตอิสระ (single-post_type_1.php และ single-post_type_2.php) เพื่อจัดการการแสดงผลของพวกเขา ฉันไม่ต้องการใส่เทมเพลตการแสดงผลในโฟลเดอร์ชุดรูปแบบเพราะฉันต้องการให้พวกเขามีอยู่ในโฟลเดอร์ปลั๊กอินที่เกี่ยวข้อง
ฉันจะให้แต่ละคนลงทะเบียน template_redirect hook ได้อย่างไรโดยไม่กระทบกับคนอื่น ๆ ? หรือฉันควรใช้เทคนิคอื่น
ขณะนี้ฉันกำลังทำสิ่งนี้ในปลั๊กอิน 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;
}
}
}
เมื่อฉันลงทะเบียน hook_ แม่แบบ template_redirect ของปลั๊กอิน 2 ปลั๊กอิน 1 จะไม่ทำงานอีกต่อไป
ฉันพลาดอะไรไปรึเปล่า?
วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?