Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coppa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Buona pratica: Verificare l’esistenza di una funzione quando la si aggiunge al 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. Si tratta di un’operazione importante per garantire il corretto funzionamento del sito ed evitare 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. Sappiamo che il codice PHP personalizzato può fallire se chiama una funzione che non esiste più o che non è ancora stata definita.

In questo articolo vi mostreremo come verificare facilmente l’esistenza di una funzione prima di aggiungerla al vostro tema WordPress, evitando così potenziali errori nel codice.

Checking if a function exists in WordPress

Perché aggiungere ‘If Function Exists’ al codice personalizzato?

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

Poiché il codice PHP deve terminare l’esecuzione prima che la pagina venga caricata nei browser dei 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, questo si arresta e visualizza un messaggio di errore critico o di errore irreversibile.

WordPress critical error message

Cosa può far sì che una funzione smetta improvvisamente di funzionare o scompaia?

È un errore di WordPress più comune di quanto si possa pensare.

Ad esempio, supponiamo che uno dei plugin di WordPress sia dotato di una funzione che avete aggiunto all’header o al footer del tema. La disattivazione del plugin farà scomparire la funzione e causerà l’errore critico sul sito web di WordPress.

Detto questo, vediamo come verificare facilmente l’esistenza di una funzione prima di eseguirla nei file del tema di WordPress.

Selezionare l’esistenza di una funzione 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 di avere una funzione di WordPress che visualizza l’ora corrente con informazioni sul fuso orario. Ecco uno snippet di codice di esempio che potete utilizzare per provarlo.

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

Per prima cosa, è necessario installare e attivare il plugin gratuito WPCode. Se avete bisogno di aiuto per farlo, consultate la nostra guida per principianti, passo dopo passo, su come installare un plugin di WordPress.

Dopo l’attivazione, è necessario andare su Code Snippets ” + Add Snippet nella dashboard di WordPress. Una volta lì, passate il mouse sull’opzione “Aggiungi il tuo codice personalizzato (nuovo snippet)” e poi fate clic sul pulsante “Usa snippet” che appare.

Adding Custom Code in WPCode

Si aprirà una nuova pagina in cui sarà possibile aggiungere lo snippet personalizzato. Digitare un titolo come “Visualizza ora corrente con fuso orario” e incollare lo snippet di codice sottostante nel riquadro Anteprima 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>";
}
Paste the Code Snippet Into WPCode

Successivamente, è necessario selezionare “PHP Snippet” dal menu a discesa Tipo di codice per assicurarsi che il codice venga eseguito correttamente.

Infine, si deve spostare la levetta Attiva/disattiva sulla posizione On e fare clic sul pulsante “Salva snippet” per memorizzare il nuovo snippet di codice.

Activate and Save the Code Snippet

Per richiamare questa funzione, è necessario aggiungere il seguente codice in qualsiasi punto del tema WordPress in cui si desidera visualizzare l’ora corrente.

<?php wpb_show_timezone(); ?>

Ecco come appariva sul nostro sito web di test.

Function runs normally

Ora, cosa accadrebbe se il codice responsabile dell’esecuzione di questa funzione scomparisse?

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

Critical error in WordPress

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

Anche in questo caso, è necessario aggiungere il codice direttamente al file functions.php del tema o utilizzare un plugin per gli snippet di codice come WPCode (consigliato):

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

In questo codice, si utilizza la funzione function_exists(). Questa funzione seleziona se una funzione esiste e restituisce True o False.

Abbiamo quindi add-on una condizione if-else per intraprendere un’azione appropriata in base alla disponibilità della funzione.

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

Missing function skipped

Speriamo che questo articolo vi abbia aiutato a capire come verificare l’esistenza di una funzione in WordPress. Potreste anche consultare la nostra guida su come visualizzare facilmente il codice sul vostro sito WordPress o la nostra scelta dei migliori editor di codice per Mac e Windows per modificare i file di WordPress.

Se questo articolo vi è piaciuto, iscrivetevi al nostro canale YouTube per le esercitazioni video su WordPress. Potete trovarci anche su Twitter e Facebook.

Divulgazione: I nostri contenuti sono sostenuti dai lettori. Ciò significa che se cliccate su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come WPBeginner è finanziato , perché è importante e come puoi sostenerci. Ecco il nostro processo editoriale .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Il kit di strumenti WordPress definitivo

Ottenete l'accesso gratuito al nostro kit di strumenti - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Reader Interactions

3 commentiLascia una risposta

  1. Joana Pereira

    Good call Kovshenin. I know exactly what you mean because I was using a custom function with contact form 7 (to retrieve the ip address on each form) and every time the plugin was updated, the theme broke.

    Thanks for the tip

    Joana Pereira

  2. kovshenin

    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. Tenga presente che tutti i commenti sono moderati in base alle nostre politica dei commenti e il suo indirizzo e-mail NON sarà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avremo una conversazione personale e significativa.