Aggiungere codice Javascript ai plugin WordPress

Quando si realizza un plugin per il pannello di amministrazione del nostro blog, molto spesso abbiamo bisogno di caricare all’interno delle pagine del codice javascript.
Immaginiamo un ambito di applicazione dove ci serve una sotto pagina in Articoli, che chiameremo Overview nella quale visualizziamo una tabella contenente gli ultimi 20 post pubblicati e che questa tabella sia ordinabile in base ai campi Titolo, Autore, Data.
L’HTML della tabella lo creiamo tramite una semplice query al database (di cui non ci occupiamo in questo post), mentre per l’ordinamento ci serviremo del plugin jQuery Tablesorter.
Tablesorter va incluso nella nostra pagina Overview assieme alla libreria jQuery, quindi scarichiamo il file jquery.tablesorter.js (assieme a tutto l’occorrente) dal sito appena indicato e copiamo il tutto nella cartella del nostro plugin: wp-content/plugins/overview/.
Per non appesantire il caricamento delle altre pagine amministrative con script non necessari, caricheremo il file jquery.tablesorter.js solo nella pagina Articoli » Overview.

Il codice che segue va inserito nel plugin PHP ed è basato sugli esempi mostrati nella documentazione ufficiale.

add_action('admin_init', 'overview_admin_init');
add_action('admin_menu', 'overview_admin_menu');
function overview_admin_init(){
	// registriamo lo script come dipendente da jQuery
	wp_register_script('overviewJS', WP_PLUGIN_URL . '/overview/jquery.tablesorter.js', array('jquery'));
}
function overview_admin_menu(){
	// creiamo la pagina
	$page = add_submenu_page('edit.php', 'Overview', 'Overview', 9, __FILE__, 'overview_page');
  // e facciamo caricare gli script solo nella nostra pagina
	add_action('admin_print_scripts-'.$page, 'overview_admin_styles');
}
function overview_admin_styles(){
	// richiamiamo gli script
	wp_enqueue_script('overviewJS');
}
function overview_page(){
// in questa funzione facciamo la query
// al database per costruire la tabella
// con i post
}

Per caricare tutto il codice javascript senza ulteriori passaggi, conviene aggiungere al file jquery.tablesorter.js queste righe:

jQuery(document).ready(function()  { 
        jQuery("#myTable").tablesorter(); 
    } 
);

Queste righe “dicono” al plugin di applicare l’ordinamento alla tabella con id myTable subito dopo il caricamento completo della pagina.