WordPress: eliminare i widget di Jetpack

WordPress: eliminare i widget di Jetpack

di Pubblicato: 7 settembre 2017 0 commenti

In questo articolo vediamo come “scaricare” dal sistema i widget inseriti da Jetpack, ma la tecnica è valida per qualsiasi altro plugin. Non cito i temi grafici, poiché quelli potremo eliminarli direttamente dal codice, benché quanto andremo a spiegare ha valenza anche per questi ultimi, tuttavia è un controsenso caricare e scaricare widget quando possiamo direttamente non caricarli…

Per prima cosa vediamo perché fare una cosa simile. Diciamo che in linea di massima la questione non dovrebbe porsi, ma se fate un utilizzo frequente dei widget di WordPress, l’affollamento di questi ultimi può rivelarsi seccante. Uno dei maggiori “fornitori” è appunto Jetpack della Automattic, che carica a sistema parecchi di questi widget tra l’altro dalle funzioni più disparate, dal Cookie Law ai social media.

Pertanto vediamo come scaricarli da WordPress. Il fatto di scaricarli e non eliminarli direttamente da codice, deriva dal fatto che in effetti possiamo farlo, ovvero commentare la parte di codice che li interessa, ma siccome i plugin spesso subiscono aggiornamenti dovremo poi rifare tale operazione ogni volta, poiché l’aggiornamento non contemplerà la nostra azione precedente. Per questo ci viene in aiuto la funzione unregister_widget che serve proprio a questo scopo.

La prima cosa da fare è scoprire  il nome con il quale il widget è stato registrato. Per questo motivo è necessario indagare nel codice e trovare la corrispondenza associata alla funzione register_widget. Vediamo un esempio pratico proprio relativo a Jetpack.

I widget per questo plugin sono posizionati fisicamente nella path /wp-content/plugins/jetpack/modules/widgets. Prendiamo in esempio il widget che carica Facebook e corrisponde al file facebook-likebox.php, se analizziamo le prime righe troveremo:

function jetpack_facebook_likebox_init() {
    register_widget( 'WPCOM_Widget_Facebook_LikeBox' );
}

come si può vedere il widget che vogliamo eliminare è stato registrato come WPCOM_Widget_Facebook_LikeBox. Attenzione alle varie minuscole e maiuscole poiché sono importanti. A questo punto possiamo costruire all’interno del file functions.php del nostro tema grafico il seguente codice:

function tosolini_unregister_jetpack_widgets() {
     if ( is_admin() || current_user_can('editor') ) {
         unregister_widget('WPCOM_Widget_Facebook_LikeBox'); //elimino facebook
         unregister_widget('Jetpack_Twitter_Timeline_Widgett'); //elimino anche twitter
     }
 }
 add_action('widgets_init', 'tosolini_unregister_jetpack_widgets', 11);

Dal codice si evince che attraverso il già citato unregister_widget andremo a “scaricare” due plugin, potremo comunque espandere tale scelta per tanti quanti widget non vogliamo vedere nella lista di quelli utilizzabili.

La parte condizionale IF è solo per assicurarsi che l’utente sia di tipo amministrativo e che ha accesso alla pagina dei widget, se non altro per non eseguire codice inutile quando questo non serve. Opzionalmente si può escludere l’admin e comprendere solo il ruolo interessato, che al momento vi ricordo essere solo editor e administrator.

In conclusione abbiamo visto come WordPress carica i widget e come possiamo successivamente scaricarli con poche semplici  righe di codice.

Ti è stato utile questo articolo?
Considera una piccola donazione: 1MVsPDJu9ctp8WfyiQHJCPjwFJKe7YWHek

Vuoi dire o aggiungere qualcosa?

sezione commenti aperta al pubblico

Non ci sono ancora commenti!

Puoi essere il primo a commentare.

Rispondi