Sostituire il file JS caricato da un plugin
Spesso i plugin caricano librerie javascript, queste potrebbero essere state personalizzate dagli sviluppatori e questo è un male. Ora ti spiego perché e come risolvere il problema.
Due plugin potrebbero chiedere la stessa libreria, WordPress è programmato per caricare una versione sola identificata da un nome. Ad esempio se un plugin carica “jquery”, tutte gli altri che fanno lo stesso verranno ignorati e utilizzeranno il file già caricato. Chiaramente, se il primo plugin carica una versione “jquery” modificata e non idonea per tutti gli altri, troverai errori nel sito web.
Avrai problemi anche quando un plugin carica “jquery” e un altro lo fa nuovamente con un identificativo diverso, ad esempio “mio-jquery”. WordPress carica entrambi i file nella pagina.
Come faccio a eliminare un caricamento indesiderato? E come imporre una libreria javascript completa e aggiornata?
Ecco il codice da usare
define( 'MY_CHILD_URI', get_stylesheet_directory_uri().'/' ); add_action('wp_enqueue_scripts', 'mytheme_scripts'); function mytheme_scripts() { wp_dequeue_script( 'waypoints' ); wp_deregister_script( 'waypoints' ); wp_enqueue_script( 'waypoints', MY_CHILD_URI . 'assets/js/jquery.waypoints.min.js', array('jquery'), '', true ); }
Spiegazione: devi recuperare il nome usato in WordPress per identificare quello script. Cerca l’azione “wp_enqueue_scripts” tra i file del plugin. Nel mio caso dovevo sostituire la libreria “waypoints” caricata da WPBakery. Ottenuto il nome, basta caricare il tuo file nella cartella del tema Child, poi usi l’azione “wp_enqueue_scripts” nel file functions.php.
Attenzione, per rimuovere lo script non è sufficiente usare “wp_dequeue_script”, a volte serve anche “wp_deregister_script”.
Questo articolo ha 0 commenti