L'aggiornamento della versione PHP genera l'avviso "Use of undefined constant WP_CONTENT_DIR"?
Sul mio hosting condiviso HostGator con l'opzione CPanel per impostare PHP per dominio, se attivo PHP 7.3 (o altre versioni 7.x) per il mio blog esistente ottengo una pagina di errore:
Warning: Use of undefined constant WP_CONTENT_DIR – assumed 'WP_CONTENT_DIR' (questo genererà un Errore in una futura versione di PHP) in /my_site/public_html/wp-includes/load.php on line 141 La tua installazione PHP sembra non avere l'estensione MySQL che è richiesta da WordPress
Se cerco su Google, tutti i consigli riguardano come installare mysqld
, ma è sicuramente già installato dato che una nuova installazione di WordPress su un sotto-dominio separato funziona perfettamente con PHP 7.3, quindi devo aver tralasciato qualcosa nel file wp-config.php
del mio vecchio sito. Tuttavia, confrontando le versioni funzionanti e quelle che generano errori, non riesco a vedere una differenza evidente.
Ecco cosa ha funzionato per me: il mio sito WordPress su Hostgator mostrava lo stesso errore finché non ho commentato il file .htaccess
principale. In questo modo:
Il mio sito è un sottodominio, quindi aveva il suo .htaccess
personale, ed è lì che era specificata la versione PHP (cpanel lo ha fatto automaticamente). Non ho dovuto modificare wp-config.php
o altri file.
Nei commenti di questo post ho trovato la soluzione:
https://wordpress.org/support/topic/php-7-3-errors/#post-12720824

Normalmente, la voce WP_CONTENT_DIR è definita nel file https://developer.wordpress.org/reference/files/wp-includes/default-constants.php/ (che viene caricato dopo wp-settings.php):
if ( ! defined( 'WP_CONTENT_DIR' ) ) {
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
// Nessuna barra finale, solo percorsi completi - WP_CONTENT_URL è definito più avanti.
}
Questo imposterà WP_CONTENT_DIR
sulla cartella predefinita 'wp-content' del tuo sito, a meno che tu (o qualcuno/qualcosa) non l'abbia definito precedentemente nel file wp-config.php
con un comando come questo:
define('WP_CONTENT_DIR', '/percorso/verso/wordpress/wp-content');
In un'installazione 'pulita'/predefinita, non dovrebbe esserci quella DEFINE nel file wp-settings
. Forse hai un plugin o una funzione che ha spostato la cartella dei contenuti in una nuova posizione come metodo di 'sicurezza' (sebbene sia discutibile se sia utile - la 'sicurezza per oscurità' non funziona poi così bene) e ha modificato il valore della variabile WP_CONTENT_DIR
.
Quindi controlla il tuo file wp-settings.php
per quella istruzione DEFINE. Rimuovila (a meno che tu non voglia davvero i tuoi file wp-content
in un'altra posizione), o cerca un plugin nel tuo sito che sta facendo questo.

Nel mio caso, c'erano due file .htaccess in esecuzione simultaneamente (uno dalla cartella "public_html" e uno sopra la directory root), e questo causava il conflitto. Ho rimosso il file e ha funzionato. Sono riuscito a risolvere questo problema relativo all'aggiornamento della mia versione di Wordpress.
Ecco il post originale con questa soluzione: https://iiiji.com/fix-php-upgrade-error-whm-cpanel/

Ho appena aggiornato la versione PHP da 7.0 a 7.4 utilizzando Multi Php Editor per il mio sito web e ho riscontrato l'errore "Use of undefined constant WP_CONTENT_DIR – assumed ‘WP_CONTENT_DIR’".
Dopo ciò, sono tornato alla versione 7.0 e ho ricevuto questo errore:
Sembra che la tua installazione PHP non abbia l'estensione MySQL che è richiesta da WordPress.
Quindi ho nuovamente aggiornato a PHP 7.4.
Come ho risolto l'errore? Semplicemente ho eliminato il file .htaccess e ho aggiornato la pagina. Tutto ha funzionato correttamente.
Grazie
