Je suis un nouveau développeur WordPress et j'ai récemment eu des problèmes (sur plusieurs sites) avec include_once
et require_once
pour les fichiers PHP. Si j'inclus (get_theme_directory_uri() . 'subdir/file')
, le fichier spécifié est inclus (ou requis, ce qui entraîne des erreurs fatales), mais si des fonctions WordPress sont appelées dans le fichier, j'obtiens un résultat similaire à:
' Appel de la fonction non définie
add_action()
dans/full/path/to/file'.
La solution apparente que j'ai trouvée est de faire:
include(dirname(__FILE__) . "/subdir/filename");
Est-ce vrai ou ai-je manqué le "moyen WordPress" d'inclure des fichiers quelque part?
Si vous vérifiez https://codex.wordpress.org/Function_Reference/get_template_directory_uri
Vous verrez que get_template_directory_uri()
renvoie un URI et non un chemin de serveur.
Vous devriez utiliser à la place la fonction get_template_directory()
:
include get_template_directory() . 'subdir/filename.php';
Pour un plugin, vous pouvez utiliser la fonction plugin_dir_path()
:
include plugin_dir_path( __FILE__ ) . 'subdir/filename.php';