Percorsi e URL nei plugin di WordPress

Percorsi e URL nei plugin di WordPress

C’è una differenza sostanziale tra percorsi ed URL quando si parla di plugin e più in generale di tutto ciò che ha a che fare con WordPress.

Un percorso (path) fa riferimento al file system del server che ospita WordPress, mentre un URL fa riferimento al protocollo HTTP e al dominio su cui risiedono i file.

Quindi /home/nomeutente/sito.com/public_html/wp-content/plugins/my_plugin è un percorso, mentre http://sito.com/wp-content/plugins/my_plugin/ è un URL.

I percorsi vengono usati per includere i file PHP, mentre gli URL per includere i file CSS, JavaScript e le immagini.

WordPress gestisce i percorsi tramite la funzione plugin_dir_path() che restituisce il percorso alla directory del plugin compreso lo slash finale.

Quindi nel file principale del plugin possiamo scrivere:

define( 'MY_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
// /home/nomeutente/sito.com/public_html/wp-content/plugins/my_plugin/

E quindi includere i file PHP in questo modo:

require_once( MY_PLUGIN_PATH . 'framework/MyClass.php' );

Al contrario la funzione plugin_dir_url() restituisce l’URL assoluto alla directory principale del plugin compreso lo slash finale.

Quindi nel file principale del plugin possiamo scrivere:

define( 'MY_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
// http://sito.com/wp-content/plugins/my_plugin/

E quindi usare l’URL in questo modo:

wp_register_script( 'my', MY_PLUGIN_URL . 'js/my.js', array( 'jquery' ), '1.0', true );

Da segnalare anche la funzione plugins_url() che ha uno scopo identico anche se con parametri diversi.

Ricordate che tutte queste funzioni si basano sul file o sulla directory passata come parametro per restituire il percorso o l’URL corretto. In PHP __FILE__ fa riferimento al file corrente in cui viene invocato. Quindi usarlo in my_plugin/my_plugin.php e in my_plugin/framework/MyClass.php restituirà due valori distinti poiché i file non si trovano nella stessa directory.

Torna su