J'ai deux types de publication personnalisés (par exemple post_type_1 et post_type_2) que je voudrais rediriger vers des modèles indépendants (single-post_type_1.php et single-post_type_2.php) pour gérer leur affichage. Je ne veux pas mettre les modèles d'affichage dans le dossier de thème car je veux qu'ils soient autonomes dans leurs dossiers de plugins respectifs.
Comment puis-je demander à chacun d'entre eux d'enregistrer un hook template_redirect sans affecter l'autre? Ou devrais-je utiliser une technique différente?
Actuellement, je fais cela dans le plugin 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;
}
}
}
Et cela dans le 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;
}
}
}
Une fois que j'ai enregistré le hook template_redirect du plugin 2, le plugin 1 ne fonctionne plus.
Suis-je en train de manquer quelque chose?
Quelle est la meilleure façon de procéder?