Come risolvere un messaggio di errore wp-blog-header.php?
Ho recentemente aggiornato un sito e ho ricevuto il seguente messaggio di errore:
Fatal error: Call to undefined function wp() in /home/atlmp/public_html/wp-blog-header.php on line 14
Ho controllato il file e non sembrano esserci problemi, quindi non riesco a capire cosa c'è che non va?
<?php
/**
* Carica l'ambiente WordPress e il template.
*
* @package WordPress
*/
if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . '/wp-load.php' );
wp();
require_once( ABSPATH . WPINC . '/template-loader.php' );
}
?>
Qualsiasi aiuto sarebbe molto apprezzato.

Per caricare WordPress è sufficiente caricare "wp-load.php" come hai fatto. Non riconosco la funzione wp() e non l'ho trovata nel codice sorgente. Dal momento che altre persone sembrano avere lo stesso problema su internet, immagino che possa essere legato a un plugin o a un'installazione di WordPress obsoleta.
Disabilita tutti i tuoi plugin e verifica se questo risolve il problema.
Per curiosità: a cosa serve questo file?

È un sito web directory. Stavo semplicemente aggiornando WP dal pannello di controllo? Ho proceduto a eliminare tutto e ho caricato tramite FTP una nuova installazione. Ora sembra tutto funzionare correttamente. Grazie per il tuo aiuto.

Anch'io mi sono trovato di fronte allo stesso problema e questa è la soluzione migliore Correggi l'errore wp-blog-header.php

Mi sono imbattuto in questo errore durante il trasferimento dei file del mio sito da HostGator a un altro hosting. Quello che ho fatto è stato comprimere i file in formato ZIP e trasferirli via FTP sul nuovo host. Qualcosa è andato storto durante la compressione dei file, ma quando li ho compressi con tar.gz tutto ha funzionato correttamente. Questa è stata la soluzione che mi ha aiutato dopo diverse ore di tentativi,
probabilmente a causa di qualche problema con la codifica dei file.

C'è un problema con WordPress.
Per favore, aggiorna il tuo file wp_load.php
utilizzando questo codice.
<!-- inizio -->
<?php
/**
* File di bootstrap per impostare la costante ABSPATH
* e caricare il file wp-config.php. Il file wp-config.php
* caricherà poi il file wp-settings.php, che
* configurerà l'ambiente WordPress.
*
* Se il file wp-config.php non viene trovato, verrà visualizzato
* un errore che chiede al visitatore di configurare
* il file wp-config.php.
*
* Cercherà anche wp-config.php nella directory genitore di WordPress
* per consentire di mantenere la directory WordPress intatta.
*
* @package WordPress
*/
/** Definisce ABSPATH come la directory di questo file */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', dirname( __FILE__ ) . '/' );
}
error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR );
/*
* Se wp-config.php esiste nella root di WordPress, o se esiste nella root e wp-settings.php
* non esiste, carica wp-config.php. Il controllo secondario per wp-settings.php ha il vantaggio aggiuntivo
* di evitare casi in cui la directory corrente è un'installazione nidificata, es. / è WordPress(a)
* e /blog/ è WordPress(b).
*
* Se nessuna delle condizioni è vera, inizia il caricamento del processo di configurazione.
*/
if ( file_exists( ABSPATH . 'wp-config.php' ) ) {
/** Il file di configurazione risiede in ABSPATH */
require_once( ABSPATH . 'wp-config.php' );
} elseif ( @file_exists( dirname( ABSPATH ) . '/wp-config.php' ) && ! @file_exists( dirname( ABSPATH ) . '/wp-settings.php' ) ) {
/** Il file di configurazione risiede un livello sopra ABSPATH ma non fa parte di un'altra installazione */
require_once( dirname( ABSPATH ) . '/wp-config.php' );
} else {
// Un file di configurazione non esiste
define( 'WPINC', 'wp-includes' );
require_once( ABSPATH . WPINC . '/load.php' );
// Standardizza le variabili $_SERVER tra le diverse configurazioni.
wp_fix_server_vars();
require_once( ABSPATH . WPINC . '/functions.php' );
$path = wp_guess_url() . '/wp-admin/setup-config.php';
/*
* Reindirizzeremo a setup-config.php. Anche se questo non dovrebbe risultare
* in un loop infinito, sarebbe sciocco presumere il contrario, non credi? Se
* stiamo girando in tondo, il nostro ultimo tentativo è "Hai bisogno di più aiuto?"
*/
if ( false === strpos( $_SERVER['REQUEST_URI'], 'setup-config' ) ) {
header( 'Location: ' . $path );
exit;
}
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
require_once( ABSPATH . WPINC . '/version.php' );
wp_check_php_mysql_versions();
wp_load_translations_early();
// Termina con un messaggio di errore
$die = sprintf(
/* translators: %s: wp-config.php */
__( "Sembra che non ci sia un file %s. Ne ho bisogno prima di poter iniziare." ),
'<code>wp-config.php</code>'
) . '</p>';
$die .= '<p>' . sprintf(
/* translators: %s: URL documentazione. */
__( "Hai bisogno di più aiuto? <a href='%s'>Eccolo qui</a>." ),
__( 'https://wordpress.org/support/article/editing-wp-config-php/' )
) . '</p>';
$die .= '<p>' . sprintf(
/* translators: %s: wp-config.php */
__( "Puoi creare un file %s tramite un'interfaccia web, ma questo non funziona per tutte le configurazioni del server. Il modo più sicuro è creare manualmente il file." ),
'<code>wp-config.php</code>'
) . '</p>';
$die .= '<p><a href="' . $path . '" class="button button-large">' . __( 'Crea un file di configurazione' ) . '</a>';
wp_die( $die, __( 'WordPress › Errore' ) );
}
<!-- fine -->
e per favore cambia i permessi del file da 644 a 444.

Per favore [modifica] la tua risposta e aggiungi una spiegazione: perché questa soluzione potrebbe risolvere il problema? Sembra proprio una pessima idea modificare il core senza alcuna ragione.

Concordo @fuxia.
@sumer-signh-harawat -- Se potessi essere così gentile da spiegare a @marna (e a tutti noi che leggiamo) perché le modifiche a wp-load.php
risolverebbero il problema. Inoltre, è probabile che queste modifiche vengano sovrascritte durante un aggiornamento di WordPress, quindi dovrebbe essere notato che questa modifica deve essere verificata per assicurarsi che rimanga dopo ogni aggiornamento (e reimplementata ogni volta che viene cambiata).
