Je souhaite rechercher un modèle approprié dans le dossier de thème avant de revenir au fichier dans mon répertoire de plugins. Voici mon code:
add_filter ('template_include', 'sermon_template_include'); fonction sermon_template_include ($ template) { if (get_query_var ('post_type') == 'wpfc_sermon') { if (is_archive () || is_search ()): if (file_exists (TEMPLATEDIR. '/archive-wpfc_sermon.php')) retourner TEMPLATEDIR. '/archive-wpfc_sermon.php'; retour dirname (__ FILE__). '/views/archive-wpfc_sermon.php'; autre : if (file_exists (TEMPLATEDIR. '/single-wpfc_sermon.php')) retourner TEMPLATEDIR. '/single-wpfc_sermon.php'; retour dirname (__ FILE__). '/views/single-wpfc_sermon.php'; fin si; } return $ template; }
Le problème, c'est que ça ne marche pas! :-) Il sélectionne toujours le fichier dans mon dossier de plugins. Une idée de quoi faire? J'ai essayé beaucoup de variations mais je n'arrive pas à faire fonctionner quoi que ce soit! Merci d'avance! Jack
ÉDITER
Je m'attends à ce que l'archive-wpfc_sermon.php soit renvoyée du dossier de thème s'il existe. Cependant, le fichier de mon plugin est toujours retourné. Merci de votre aide! Ceci provient de mon plugin Sermon Manager disponible dans le référentiel.
Réponses:
Donc, je ne sais pas exactement ce qui cause le problème, mais vous pouvez essayer ce qui suit:
dirname(__FILE__)
parplugin_dir_path( __FILE__ )
TEMPLATEDIR
parget_stylesheet_directory()
Il est possible que le problème provienne du référencement direct des constantes.
la source
Je ne sais pas si cela fonctionnera pour vous mais ça vaut le coup. Je l'utilise tout le temps pour mes types de messages personnalisés lorsqu'ils nécessitent un modèle spécial.
Tout ce que vous avez à faire est d'ajouter ce script dans votre fichier functions.php et de placer le fichier modèle dans votre répertoire de thème.
Cela pourrait valoir le coup et ne pas provoquer de conflit avec votre plugin. Mais je n'en suis pas sûr.
J'ai oublié ... n'oubliez pas d'ajouter l'action. :)
la source