Je travaille sur un plugin qui crée un type d'article personnalisé et j'aimerais afficher un modèle personnalisé sans modifier le thème.
Voici le code simplifié sur lequel je travaille:
add_filter('template_include', 'my_custom_template');
function my_custom_template($incFile) {
global $wp;
global $wp_query;
if ($wp->query_vars['post_type'] == 'custom-post-type') {
$incFile = MY_PLUGIN_TEMPLATES . '/template.php';
}
return $incFile;
}
Le problème que je rencontre est que lorsque allow_url_include est désactivé dans le fichier php.ini d'un serveur, cela génère une petite erreur amusante:
Avertissement: include () [function.include]: http: // l'encapsuleur est désactivé dans la configuration du serveur par allow_url_include = 0 dans http: //path \to\wp-includes\template-loader.php à la ligne 43
Je suppose donc que la question est la suivante: existe-t-il un moyen d’envoyer un modèle via le filtre template_include sans provoquer cette erreur allow_url_include?
Merci!
Ne le sauriez-vous pas - 10 minutes ou moins depuis que j'ai posé ma question et que j'ai découvert la réponse.
J'essayais de définir MY_PLUGIN_TEMPLATES en utilisant plugins_dir_url (), maintenant cela ressemble à ceci et fonctionne
define( 'MY_PLUGIN_TEMPLATES', dirname( __FILE__ ) . '/templates' );
Merci à mfields pour la suggestion de dirname au lieu de WP_PLUGIN_DIR.