Come inserire un file javascript solo in certe pagine del backoffice di wordpress

In questo velocissimo articolo andremo a vedere come inserire un file javascript solo in certe pagine del backoffice di wordpress. Questa necessità si può rscontrare quando sviluppiamo un plugin e volgiamo utilizzare del codice customizzato javascript, ma solo se siamo in alcune pagine dove il nosro plugin agisce e solo se siamo lato admin, cioè nel pannello di wordpress.

[us_single_image image=”5301″ size=”us_600_0″ align=”center” style=”shadow-1″]

L’inserimento di una libreria o script javascript in wordpress essenzialmente si avvale della funzione wp_enqueue_script (questo è il link al codex wordpress). Ma se noi volessimo caricare il nostro script solo lato admin e solo in certe pagine? Bene ecco un esempio di come poter fare. Caricheremo lo script nel footer lato admin e solo nella pagina product di woocommerce.

function my_admin_scripts() {
  $current_screen= get_current_screen();
  if ($current_screen->post_type === "product" ) {
        wp_enqueue_script( 'my-plugin-script1', plugin_dir_url( __FILE__ ) . 'js/customscript'...... );
   } else {
     //NON SONO IN PRODOTTO
   }
}
add_action( 'admin_footer', 'my_admin_scripts' );

Questa è la spiegazione del codice:

add_action( ‘admin_footer’, ‘my_admin_scripts’ );

qui c’è poco da dire hooks per caricare solo lato admin e nel footer.

$current_screen= get_current_screen();

Creiamo una variabile e ci mettiamo dentro un’oggetto che ci viene restituito dalla funzione get_current_screen(); che ci da (come da documentazione wp):

This function returns an object that includes the screen’s ID, base, post type, and taxonomy, among other data points

Infine:

if ($current_screen>post_type === “product” ) {//se sono in prodotto allora faccio qualcosa

//Carico lo script

wp_enqueue_script( ‘my-plugin-script1’, plugin_dir_url( __FILE__ ) . ‘js/customscript’…… );

} else {

//NON SONO IN PRODOTTO e quindi non carico niente

}

Speriamo che questo codice possa esservi utile alla prossima

CFAdvanced Staff