4 suggerimenti per riparare un sito WordPress

Pubblicato: 2020-09-03

Qualche giorno fa un amico mi ha chiamato e mi ha detto che gli era stato affidato il compito di mantenere un vecchio progetto WordPress. Apparentemente, il sito Web non veniva aggiornato da più di tre anni e c'erano problemi dappertutto. Il poveretto era completamente bloccato, perché non poteva aggiornare nulla lì: plugin, temi, contenuti... niente ha funzionato. Tutte le azioni (diverse dalla navigazione nel sito stesso) hanno provocato l'arresto anomalo di WordPress e la restituzione di un errore.

Quando abbiamo un WordPress inutilizzabile che genera continuamente errori e non può essere aggiornato, la prima cosa che dobbiamo fare è identificare il motivo per cui si comporta in quel modo. Cioè, dobbiamo trovare il colpevole. Di solito, qualsiasi problema che potresti riscontrare su un sito WordPress si verifica a causa del tuo tema o di uno (o più) dei tuoi plugin.

Considerando questo, la procedura usuale per riparare un sito WordPress è identificare il plugin offensivo, eliminarlo dall'equazione, aggiornare tutto e, infine, vedere se possiamo reinstallare e aggiornare il plugin offensivo sul nostro sito Web o dovremmo cercare un sostituzione. Oggi ti dico quattro semplici trucchi per scoprire perché un sito web non funziona e, quindi, per poterlo riparare.

Utilizzando il registro degli errori del nostro server

Assumendo l'ipotesi che sia un plugin quello che sta causando gli errori che abbiamo sul nostro sito web, la prima cosa che dobbiamo fare è convalidare tale ipotesi. Ci sono diverse formule per farlo. Personalmente, mi piace iniziare guardando il registro degli errori del mio server, che ha la sua opzione in cPanel:

Errore di accesso in cPanel
Errore di accesso in cPanel.

Si spera che il registro degli errori non contenga solo una traccia degli errori che si sono verificati sul nostro sito Web, ma anche informazioni sul "dove" si sono verificati e, quindi, chi era il colpevole. Ad esempio, la scorsa settimana ho riscontrato il seguente problema nel registro degli errori del mio ambiente di sviluppo:

 appserver_1 | [Mon Aug 24 09:18:20.977541 2020] [php7:notice] [pid 1107] [client 172.20.0.2:34396] PHP Notice: register_rest_route was called <strong>incorrectly</strong>. The REST API route definition for <code>yoast/v1/get_head</code> is missing the required <code>permission_callback</code> argument. For REST API routes that are intended to be public, use <code>__return_true</code> as the permission callback. Please see <a href="https://wordpress.org/support/article/debugging-in-wordpress/">Debugg ing in WordPress</a> for more information. (This message was added in version 5.5.0.) in /app/.lando/wordpress/wp-includes/functions.php on line 5225, referer: http://nab5.lndo.site/wp-admin/edit.php

Il registro riporta un avviso PHP che si è verificato in uno dei file di WordPress ( wp-includes/functions.php ), che non ci dice nulla su "un plug-in è il colpevole". Fortunatamente, se leggi l'intero messaggio, vedrai che descrive cosa non è riuscito (ad esempio una chiamata alla funzione register_rest_route ) e ci dà un suggerimento su cosa potrebbe essere sbagliato: Yoast (vedi come menziona " yoast/v1/get_head " ?).

I registri degli errori sono il modo più semplice per scoprire rapidamente quando/se qualcosa non va e, in tal caso, qual è il motivo di un errore. In questo particolare esempio ho scoperto di avere un problema con Yoast e, beh, tutto quello che dovevo fare era aggiornare il plugin alla sua ultima versione

Disattivazione dei plugin dalla dashboard di WordPress

Sfortunatamente, non è sempre possibile accedere al registro degli errori di un sito Web per scoprire quando le cose sono andate male. Oppure, se hai accesso al registro, potrebbe essere incompleto. In questi casi abbiamo bisogno di formule alternative per convalidare (o confutare) la nostra ipotesi iniziale.

Supponendo che il nostro sito Web non funzioni a causa di un plug-in difettoso, la cosa più semplice da fare è disattivare tutti i plug-in e verificare se l'errore persiste. In caso contrario, il colpevole era un plug-in; se persiste, il problema è altrove.

Per fare ciò, vai alla dashboard di WordPress » Plugin , seleziona tutti i tuoi plugin attivi e disattivali in blocco:

Disattiva i plug-in utilizzando le azioni collettive
Come disattivare i plugin usando le azioni collettive.

e controlla se l'errore si verifica ancora. In caso contrario, sai che il problema è stato causato da uno dei plugin che hai appena disattivato. Ora è il momento di scoprire quale precisamente.

Per identificare il plug-in difettoso, puoi attivarli uno per uno e controllare quando l'errore si ripresenta. Oppure, se vuoi andare più veloce, puoi applicare i seguenti passaggi:

  1. Attiva metà dei tuoi plugin.
    1. Se l'errore si ripresenta, il colpevole è nella metà che hai appena attivato, quindi puoi tranquillamente attivare l'altra metà.
    2. Se l'errore non compare, il colpevole è nell'altra metà.
  2. Una volta che sai in quale "gruppo" si trova il plug-in difettoso, devi solo concentrarti su quello e ripetere il processo. Attiva metà di quel gruppo e disattiva l'altra metà (cioè ora controlleresti un quarto del totale) e verifica se il tuo sito web funziona correttamente.
  3. Ripeti il ​​processo finché non trovi il colpevole.

Una volta che sai quale plugin non funziona, come risolvere il problema dipende da te. Potrebbe essere necessario contattare lo sviluppatore, provare a riparare il plug-in da soli o anche considerare di sostituirlo con un'alternativa. Ma, almeno, ora sai cosa devi fare per sbarazzarti del problema.

Effettua il backup dell'elenco dei plugin attivi

Ricordi il mio amico dall'inizio? Durante le indagini sul suo sito Web, abbiamo seguito tutti i passaggi precedenti e disattivato tutti i plug-in sul suo sito Web...

…che ha provocato una schermata bianca di morte!

Gif che mostra un uomo sorpreso

Apparentemente il Web era pieno di plug-in personalizzati e modifiche ai temi con molte dipendenze incrociate. Disattivando i plug-in, alcune delle funzioni su cui si basava il tema non erano più disponibili, causando un errore fatale. Questa è chiaramente una cattiva pratica: un tema non può fare affidamento su un plugin attivo. Se necessita di alcune delle funzionalità fornite da un determinato plug-in, deve implementare controlli di sicurezza per convalidare se sono disponibili o meno.

Ad ogni modo, il fatto è che il sito è stato completamente chiuso e non siamo stati in grado di riattivare i plugin utilizzando la dashboard. Allora qual è la soluzione qui? Bene, per cominciare, dovresti sempre avere un backup del tuo sito web... ma in questo caso particolare c'è una soluzione più semplice e veloce a portata di mano.

Nel database di WordPress è presente una tabella denominata wp_options . Lì troverai un'opzione chiamata active_plugins . Il suo valore è un array con tutti i plugin attivi. Quindi, prima di disattivare i plugin usando l'azione in blocco che ho menzionato prima, salva semplicemente questo valore in un file di testo:

Plugin attivi nel database
Plugin attivi nel database.

In questo modo, se la "disattivazione di tutti i plugin" finisce in un improbabile (ma non impossibile) WSOD, puoi riattivare tutti i plugin ripristinando l'opzione active_plugins nel database.

Come disattivare i plugin tramite FTP

Se sai che il tuo problema è generato da un plugin specifico ma non hai modo di disattivarlo dalla dashboard di WordPress, puoi farlo in sicurezza tramite FTP.

Come già sai, i plugin non sono altro che un insieme di file. Quando installi un nuovo plugin sul tuo sito web, il suo codice finisce nella cartella wp-content/plugins di WordPress. Sfruttando questa conoscenza, possiamo disattivare il plugin “rimuovendolo” da detta cartella.

Vai al cPanel del tuo server e cerca l'opzione FTP:

Opzione FTP in cPanel
Opzione FTP in cPanel.

Quindi, utilizzando Esplora file FTP, trova la cartella wp-content/plugins e individua il tuo plug-in:

Browser di file CPanel
Browser di file CPanel.

Ora, tutto ciò che devi fare è eliminare il plug-in o rinominare la sua cartella in modo che WordPress non possa trovarlo. In questo modo, se accedi al tuo sito WordPress, WordPress non vedrà più il plugin e non sarà in grado di caricare il suo codice difettoso, risolvendo così il problema che avevi.

Usa un tema predefinito

Infine, se l'ipotesi che il problema sia stato causato da uno dei tuoi plugin non era vera, il passo successivo è presumere che il colpevole sia il tuo tema. In questo caso, tutto ciò che devi fare è installare un tema WordPress predefinito (come Twenty Twenty) e vedere se il problema scompare o meno. Se scompare, sai già che c'è qualcosa che non va nel tuo tema originale; in caso contrario, è qualcosa di cui dovremo discutere in un altro post.

Se, per qualsiasi motivo, non hai accesso alla dashboard di WordPress, puoi installare un nuovo tema sul tuo sito web caricandolo via FTP ( wp-content/themes ) e cambiare il tema attivo utilizzando il database: basta modificare il template di opzioni e stylesheet di stile in wp_options . Ad esempio, potresti voler impostare entrambe le opzioni su twentytwenty , supponendo che sia il tema che hai caricato.

In sintesi

È improbabile che un WordPress vaniglia (senza plug-in e senza un tema personalizzato) fallisca. Quindi, se hai problemi sul tuo sito web, il colpevole è molto probabilmente uno dei tuoi plugin o il tuo tema. Nel post di oggi abbiamo visto diverse formule per trovare il colpevole, toglierlo di mezzo e recuperare il sito web. Spero sinceramente che tu non abbia bisogno di usare nessuno di questi trucchi... ma se lo fai, spero che ti saranno utili.

E il sito web del mio amico? Beh, non lo so, alcune persone dicono che ha cambiato carriera...

Immagine in primo piano di Olia Nayda su Unsplash.