web-dev-qa-db-fra.com

Utiliser require_once dans un plugin?

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

1
Shoebox

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 (/), recherchez canagan_admin_functions.php dans le dossier inc 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' );
}
7
chrisguitarguy