Utilizarea require_once într-un Plugin WordPress?

30 nov. 2011, 04:07:12
Vizualizări: 19.2K
Voturi: 5

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' );
1
Comentarii

Prima, pentru că a doua nu va funcționa.

Otto Otto
30 nov. 2011 04:12:33
Toate răspunsurile la întrebare 1
0
11

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 folderul inc fișierul canagan_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' );
}
30 nov. 2011 04:30:36