Tutorial WordPress affidabili, quando ne hai più bisogno.
Guida per principianti a WordPress
WPB Cup
25 Milioni+
Siti web che utilizzano i nostri plugin
16+
Anni di esperienza con WordPress
3000+
Tutorial WordPress di esperti

Migliore pratica: verifica se una funzione esiste quando aggiungi nel tema di WordPress

Uno dei nostri lettori più tecnici ci ha recentemente chiesto come verificare l'esistenza di una funzione PHP prima di integrare nuovo codice in un sito WordPress. Questo è importante per garantire che il tuo sito funzioni senza intoppi ed eviti errori.

Uno dei punti di forza di WordPress è la sua flessibilità e il team di WPBeginner aggiunge regolarmente funzioni personalizzate per migliorare la funzionalità del nostro sito. Comprendiamo che il codice PHP personalizzato può fallire se chiama una funzione che non esiste più o non è stata ancora definita.

In questo articolo, ti mostreremo come verificare facilmente se una funzione esiste prima di aggiungerla al tuo tema WordPress, permettendoti di evitare potenziali errori nel tuo codice.

Verifica dell'esistenza di una funzione in WordPress

Perché aggiungere 'Se la funzione esiste' al tuo codice personalizzato?

WordPress è scritto principalmente nel linguaggio di programmazione PHP. PHP è un linguaggio di programmazione lato server che viene eseguito sui server del tuo provider di hosting WordPress.

Poiché il codice PHP deve finire di essere eseguito prima che la pagina venga caricata nei browser dei tuoi visitatori, ci sono alcune limitazioni. Una di queste limitazioni è che se qualcosa va storto, potrebbe impedire il caricamento dell'intera pagina.

In WordPress, se una funzione mancante impedisce l'esecuzione del resto del codice, allora si interrompe e visualizza un messaggio di errore critico o errore fatale.

Messaggio di errore critico di WordPress

Cosa può far smettere improvvisamente di funzionare o scomparire una funzione?

È un errore di WordPress più comune di quanto si pensi.

Ad esempio, supponiamo che uno dei tuoi plugin WordPress includa una funzione che hai aggiunto all'area header o footer del tuo tema. La disattivazione del plugin farà scomparire la funzione e causerà l'errore critico sul tuo sito web WordPress.

Detto questo, diamo un'occhiata a come verificare facilmente se una funzione esiste prima di eseguirla nei file del tuo tema WordPress.

Verifica se una funzione esiste in WordPress

Fortunatamente, il linguaggio di programmazione PHP dispone di un metodo integrato per verificare facilmente l'esistenza di una funzione prima di eseguirla.

Supponiamo che tu abbia una funzione WordPress che visualizza l'ora corrente con informazioni sul fuso orario. Ecco un esempio di codice che puoi utilizzare per provarla.

Puoi aggiungerla direttamente al file functions.php del tuo tema, ma in questo tutorial utilizzeremo il plugin per snippet di codice WPCode perché è il modo più sicuro e semplice per aggiungere codice personalizzato in WordPress.

Innanzitutto, devi installare e attivare il Plugin Gratuito WPCode. Se hai bisogno di aiuto per farlo, consulta la nostra guida passo passo per principianti su come installare un plugin di WordPress.

Dopo l'attivazione, devi andare su Snippet di Codice » + Aggiungi Snippet nella tua bacheca di WordPress. Una volta lì, passa il mouse sopra l'opzione 'Aggiungi il tuo codice personalizzato (Nuovo Snippet)' e quindi fai clic sul pulsante 'Usa snippet' che appare.

Aggiungere codice personalizzato in WPCode

Questo aprirà una nuova pagina in cui potrai aggiungere il tuo snippet personalizzato. Digita un titolo come 'Mostra ora corrente con fuso orario' e poi incolla lo snippet di codice sottostante nel riquadro di anteprima del codice.

//display current time with timezone
function wpb_show_timezone() {
$better_time = current_time('F j, Y g:i a e');
echo "<p>The current time is " . $better_time ."</p>";
}
Incolla lo snippet di codice in WPCode

Successivamente, devi selezionare 'Snippet PHP' dal menu a discesa Tipo di codice per assicurarti che il codice venga eseguito correttamente.

Infine, dovresti spostare l'interruttore Attiva su On e fare clic sul pulsante ‘Salva Snippet’ per memorizzare il tuo nuovo snippet di codice.

Attiva e salva lo snippet di codice

Per chiamare questa funzione, dovrai aggiungere il seguente codice ovunque nel tuo tema WordPress dove desideri visualizzare l'ora corrente.

<?php wpb_show_timezone(); ?>

Ecco come appariva sul nostro sito web di test.

La funzione viene eseguita normalmente

Ora, cosa succederebbe se il codice responsabile dell'esecuzione di questa funzione scomparisse?

La chiamata alla funzione interromperà il tuo sito web in questo modo.

Errore critico in WordPress

Aggiungiamo un controllo per assicurarci che questo codice venga eseguito solo quando la funzione esiste.

Ancora una volta, dovrai aggiungere il codice direttamente al file functions.php del tuo tema o utilizzare un plugin per snippet di codice come WPCode (consigliato):

<?php
if( function_exists('wpb_show_timezone')) {
wpb_show_timezone();
} else {
// do nothing
}
?>

In questo codice, stiamo utilizzando la funzione function_exists(). Questa funzione controlla se una funzione esiste e restituisce Vero o Falso.

Abbiamo quindi aggiunto una condizione if-else per intraprendere azioni appropriate a seconda della disponibilità della funzione.

Ora, quando la funzione non è più disponibile, il codice la salterà semplicemente e WordPress sarà in grado di caricare il resto del tuo sito web normalmente.

Funzione mancante saltata

Speriamo che questo articolo ti abbia aiutato a imparare come verificare se una funzione esiste in WordPress. Potresti anche voler consultare la nostra guida su come visualizzare facilmente il codice sul tuo sito WordPress o la nostra scelta esperta dei migliori editor di codice per Mac e Windows per la modifica dei file WordPress.

Se ti è piaciuto questo articolo, iscriviti al nostro canale YouTube per tutorial video su WordPress. Puoi anche trovarci su Twitter e Facebook.

Dichiarazione: Il nostro contenuto è supportato dai lettori. Ciò significa che se fai clic su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come è finanziato WPBeginner, perché è importante e come puoi supportarci. Ecco il nostro processo editoriale.

Il Toolkit WordPress Definitivo

Ottieni l'accesso GRATUITO al nostro toolkit - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Interazioni del lettore

7 CommentsLeave a Reply

  1. Mi ha salvato da un mal di testa! Non potete immaginare quante volte ho aggiunto codice solo per vedere il mio tema bloccarsi perché mancava una funzione. Super facile da implementare e mantiene il mio codice pulito.

    Grazie per la spiegazione chiara

  2. Vorrei chiedere, se PHP mi dà un errore riguardo a una funzione PHP inesistente, una tale funzione può essere abilitata, o deve essere fatta dall'amministratore del server? Ed è possibile che la funzione dipenda dalla versione di PHP? Cioè, che una certa funzione sia disponibile in una versione di PHP ma non in un'altra?

    • In quel caso la funzione non esiste, quindi dovresti indagare su quale sia la funzione specifica per aiutarti a trovare cosa sta causando l'errore. Dopo di che puoi verificare con il supporto cosa sta causando l'errore o rimuovere ciò che lo sta causando.

      Amministratore

  3. Ottima idea Kovshenin. So esattamente cosa intendi perché stavo usando una funzione personalizzata con contact form 7 (per recuperare l'indirizzo IP su ogni modulo) e ogni volta che il plugin veniva aggiornato, il tema si rompeva.

    Grazie per il suggerimento

    Joana Pereira

    • Ci sono passato anch'io con gli aggiornamenti dei plugin che rompevano i temi! Usare function_exists() è decisamente un punto di svolta per prevenire questi mal di testa

  4. Right, only please stop checking for dynamic_sidebar with function_exists in WordPress themes, unless you need to support WordPress 2.2 and below, which I *highly* doubt. Also with the user photo plugin, the whole approach seems to be wrong and redundant to me, it looks like many developers are missing the whole point of pluggable functions…. Oh well :)

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra politica sui commenti, e il tuo indirizzo email NON verrà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.