Cerca

Gestire gli errori di chiamata dei plugin WordPress undefined function

Indice Articolo

Ultimi articoli pubblicati

Chi si occupa di WordPress, probabilmente avrà già avuto a che fare con gli errori Call to undefined function, derivanti dalla chiamata di una funzione non presente nel codice, che inesorabilmente restituisce un fatal error, terminando l’esecuzione dello script.

Gestire gli errori di chiamata dei plugin WordPress undefined function

Questo tipo di errori derivano principalmente da un utilizzo scorretto delle chiamate dei plugin di WordPress: per esempio è possibile che durante un upgrade ci siano dei problemi e che il plugin non correttamente aggiornato, venga automaticamente disattivato; altre volte nel caso di più persone a gestire il blog può accadere che dei plugin vengano cancellati o disattivati erroneamente.

Queste disattivazioni “indesiderate” possono provocare degli errori simili a questo che mi è capitato di vedere:

Fatal error: Call to undefined function similar_posts() in wwwwp-patrimwp-contentthemestr3ndysingle.php on line 46

Durante il processo di aggiornamento di questo plugin infatti, non avevo notato che questo plugin si era disattivato a causa di un’interruzione della portante ADSL. Nel mio caso è stato sufficiente rifare l’upload del plugin e riattivarlo per veder scomparire l’errore.

Inoltre essendo questo plugin utilizzato generalmente alla fine del post, non ho subito troppe perdite in termini di visite, poiché il termine dello script impediva solo la visualizzazione del footer e parte della sidebar, ma se invece questo tipo di errore si fosse trovato su di un plugin che lavora nell’header ad esempio?

Il risultato sarebbe stato catastrofico: il blog avrebbe probabilmente visualizzato solo l’errore e nulla di più, con ingenti perdite di visite. Come si può fare per evitare questi effetti indesiderati e gestire al meglio i plugin di WordPress?

La risposta è abbastanza semplice. Quando inserite la funzione che richiama un plugin, non inserite direttamente nel codice solo la chiamata secca alla funzione come ad esempio:

[code]<?php NOME_DELLA_FUNZIONE(); ?>[/code]

ma inserite il seguente codice di controllo per prevenire una disattivazione inattesa:

[code]<?php<br />
if (function_exists(‘FUNCTION NAME’)) {<br />
FUNCTION_NAME();<br />
}<br />
?>[/code]

L’istruzione standard php function_exists controlla l’esistenza di una determinata funzione restituendo il valore TRUE oppure FALSE se non è presente. Se per l’if la funzione esiste, allora si potrà procedere alla sua esecuzione, diversamente, se la funzione non esiste il codice verrà ignorato e non verrà effettuerà nessuna chiamata, mentre si proseguirà ad eseguire le successive istruzioni.

Con questo semplice modo di gestire le chiamate ai plugin di WordPress, sarete al riparo da eventuali disattivazioni accidentali e potrete mantenere sempre il vostro tema ordinato e soprattutto organizzato.

Rispondi