Je travaille sur ce didacticiel sur les types de publication personnalisés (dans un plugin), dans lesquels l'auteur montre comment utiliser forcer l'utilisation d'un modèle dédié pour le type de publication personnalisée. L'auteur déclare ainsi:
Le code (ci-dessous) recherche le modèle
single-movie-reviews.php
dans le répertoire du thème actuel. S'il n'est pas trouvé, il recherche dans le répertoire du plugin le modèle que nous fournissons en tant que partie du plugin. Le hook template_include a été utilisé pour modifier le comportement par défaut et appliquer un modèle spécifique.
Étape 1: Ajout de ce code dans mon fichier plugin-name.php
} _
add_filter( 'template_include', 'include_reviews_template', 1 );
function include_reviews_template(){
if ( get_post_type() == 'reviews' ) {
if ( is_single() ) {
// checks if the file exists in the theme first,
// otherwise serve the file from the plugin
if ( $theme_file = locate_template( array( 'single-movie-reviews.php' ) ) ) {
$template_path = $theme_file;
} else {
$template_path = plugin_dir_path( __FILE__ ) . '/templates/single-movie-reviews.php';
}
}
}
return $template_path;
}
Étape 2: Créez le fichier single- {custom-post-type} .php.
Ensuite, j'ai créé le fichier single-movie-reviews.php
requis et l'a ajouté au répertoire '/my-plugin/templates/'
.
L'auteur ajoute ce qui suit:
Remarque: Vous devez créer une nouvelle page à partir du tableau de bord à l'aide du modèle nouvellement créé.
Les problèmes
Alors qu'est-ce que je fais mal?
S'il vous plaît donnez votre avis
Changer cette ligne:
function include_reviews_template(){
Pour ça:
function include_reviews_template( $template_path ) {
Lorsque get_post_type() == 'reviews'
est false, vous retournez une variable non définie ($template_path
). Cette modification devrait envoyer la valeur transmise à la fonction par WordPress.