Quelle est la différence entre ces deux extraits de code et lequel devrais-je utiliser pour un plugin WordPress?
require_once(dirname(__FILE__).'/inc/canagan_admin_functions.php');
require_once( '/inc/canagan_admin_functions.php' );
Merci,
Mat
Le premier est comme dire ...
Incluez le fichier présent dans le répertoire
inc
, au-dessus du répertoire dans lequel se trouve ce fichier.
La deuxième déclaration dit ...
à la racine du serveur (
/
), recherchezcanagan_admin_functions.php
dans le dossierinc
et incluez-le.
Le premier fonctionnera, le second ne fonctionnera pas. Dans la seconde, vous regardez à la racine du système de fichiers entier; votre fichier ne sera certainement pas.
En passant, chaque fois que je lance un plug-in qui s'étend sur plusieurs fichiers et/ou met en file d'attente des fichiers CSS ou JS, je configure généralement quelques constantes pour m'aider tout au long du processus. Voici un exemple .
<?php
define( 'CD_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
define( 'CD_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
plugin_dir_path
et plugin_dir_url
sont sympas car ils renvoient toujours les chemins/urls avec des barres obliques.
Ensuite, pour inclure/exiger des fichiers, j'utilise les constantes. Empêche d'appeler dirname(__FILE__)
à chaque inclusion.
Vous pouvez ensuite utiliser les constantes pour inclure des fichiers ...
require_once( CD_PLUGIN_PATH . 'path/to/file.php' );
ou pour mettre en file d'attente les scripts/styles ...
<?php
add_action( 'wp_enqueue_scripts', 'wpse35088_enqueue' );
function wpse35088_enqueue()
{
wp_enqueue_script( 'wpse35088-script', CD_PLUGIN_URL . 'path/to/script.js' );
}