Utilizarea require_once într-un Plugin WordPress?
Care este diferența dintre aceste două fragmente de cod și care ar trebui să folosesc pentru un plugin WordPress?
require_once(dirname(__FILE__).'/inc/canagan_admin_functions.php');
require_once( '/inc/canagan_admin_functions.php' );

Prima variantă este echivalentă cu a spune...
Include fișierul găsit în directorul
inc
, situat deasupra directorului în care se află acest fișier.
A doua afirmație spune...
în rădăcina serverului (
/
) caută în folderulinc
fișierulcanagan_admin_functions.php
și include-l.
Prima variantă va funcționa, a doua nu. În a doua variantă cauți în rădăcina întregului sistem de fișiere, unde cu siguranță nu se va afla fișierul tău.
Ca o observație suplimentară, de fiecare dată când încep un plugin care va avea mai multe fișiere și/sau care va încărca fișiere CSS sau JS, de obicei definesc câteva constante pentru a mă ajuta. Iată un exemplu.
<?php
define( 'CD_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
define( 'CD_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
plugin_dir_path
și plugin_dir_url
sunt utile deoarece întotdeauna returnează căi/URL-uri cu slash-uri finale.
Apoi, pentru a include/necesita fișiere, folosesc constantele. Astfel evit să apelez dirname(__FILE__)
la fiecare include.
Poți folosi apoi constantele pentru a include fișiere...
require_once( CD_PLUGIN_PATH . 'calea/către/fișier.php' );
sau pentru a încărca scripturi/stiluri...
<?php
add_action( 'wp_enqueue_scripts', 'wpse35088_enqueue' );
function wpse35088_enqueue()
{
wp_enqueue_script( 'wpse35088-script', CD_PLUGIN_URL . 'calea/către/script.js' );
}
