La bonne façon d’inclure/exiger des fichiers PHP dans WordPress
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 ‘fichier’, j’obtiens quelque chose de similaire à :
‘ Appel à une fonction indé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 exact ou ai-je raté « la méthode WordPress » pour inclure des fichiers quelque part ?
Solution n°1 trouvée
WordPress 4.7+ introduit les fonctions get_theme_file_path() pour inclure le fichier sur le thème WordPress.
Inclure comme ceci :
include get_theme_file_path( '/subdir/filename.php' );
L’avantage d’utiliser cette fonction est que sur le thème enfant, vous pouvez remplacer le fichier de thème parent.
Référence : https://developer.wordpress.org/reference/functions/get_theme_file_path/
Solution n°2 trouvée
Si vous cochez https://codex.wordpress.org/Function_Reference/get_template_directory_uri
Vous verrez get_template_directory_uri()
renvoie un uri, pas un chemin de serveur.
Vous devriez utiliser à la place la get_template_directory()
fonction :
include get_template_directory() . 'subdir/filename.php';
Pour un plugin vous pouvez utiliser la plugin_dir_path()
fonction :
include plugin_dir_path( __FILE__ ) . 'subdir/filename.php';
0 commentaire