How do I “fix” a wp-blog-header.php error message?

I recently updated a site and received the following error message:

Fatal error: Call to undefined function wp() in /home/atlmp/public_html/wp-blog-header.php on line 14

Read More

I checked the file and there doesn’t seem to be any issues, so I can’t figure out what’s wrong?

<?php
/**
 * Loads the WordPress environment and 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' );

}

?>

Any help would be greatly appreciated.

Related posts

Leave a Reply

5 comments

  1. To load WordPress it is enough to load “wp-load.php” like you did. I don’t recognize the wp() function and haven’t found it in the source. As other people seem to have the same problem on the internet I guess it has to do with a plugin or a possibly outdated WordPress installation.

    Disable all your plugins and see if that resolves the problem.

    Out of curiosity: What is this file for?

  2. I agree. Usually it’s a plugin that causes these issues in my experience. it can be a headache, but disabling all of your plugins, then going through and enabling your plugins one by one will often pinpoint the problem.

  3. I was facing this error when moving my site files from hostgator to other host, what I did was ZIP the files and FTP them to the new host. something messed up with compressing the files, when I compressed them with tar.gz everything worked fine. that’s what helped me after several hours,

    probably something with the encoding of files.

  4. There is some WordPress issue.
    you please update your wp_load.php and using this code.

    <!-- start -->
    
    <?php
    /**
     * Bootstrap file for setting the ABSPATH constant
     * and loading the wp-config.php file. The wp-config.php
     * file will then load the wp-settings.php file, which
     * will then set up the WordPress environment.
     *
     * If the wp-config.php file is not found then an error
     * will be displayed asking the visitor to set up the
     * wp-config.php file.
     *
     * Will also search for wp-config.php in WordPress' parent
     * directory to allow the WordPress directory to remain
     * untouched.
     *
     * @package WordPress
     */
    
    /** Define ABSPATH as this file's directory */
    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 );
    
    /*
     * If wp-config.php exists in the WordPress root, or if it exists in the root and wp-settings.php
     * doesn't, load wp-config.php. The secondary check for wp-settings.php has the added benefit
     * of avoiding cases where the current directory is a nested installation, e.g. / is WordPress(a)
     * and /blog/ is WordPress(b).
     *
     * If neither set of conditions is true, initiate loading the setup process.
     */
    if ( file_exists( ABSPATH . 'wp-config.php' ) ) {
    
        /** The config file resides in ABSPATH */
        require_once( ABSPATH . 'wp-config.php' );
    
    } elseif ( @file_exists( dirname( ABSPATH ) . '/wp-config.php' ) && ! @file_exists( dirname( ABSPATH ) . '/wp-settings.php' ) ) {
    
        /** The config file resides one level above ABSPATH but is not part of another installation */
        require_once( dirname( ABSPATH ) . '/wp-config.php' );
    
    } else {
    
        // A config file doesn't exist
    
        define( 'WPINC', 'wp-includes' );
        require_once( ABSPATH . WPINC . '/load.php' );
    
        // Standardize $_SERVER variables across setups.
        wp_fix_server_vars();
    
        require_once( ABSPATH . WPINC . '/functions.php' );
    
        $path = wp_guess_url() . '/wp-admin/setup-config.php';
    
        /*
         * We're going to redirect to setup-config.php. While this shouldn't result
         * in an infinite loop, that's a silly thing to assume, don't you think? If
         * we're traveling in circles, our last-ditch effort is "Need more help?"
         */
        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();
    
        // Die with an error message
        $die = sprintf(
            /* translators: %s: wp-config.php */
            __( "There doesn't seem to be a %s file. I need this before we can get started." ),
            '<code>wp-config.php</code>'
        ) . '</p>';
        $die .= '<p>' . sprintf(
            /* translators: %s: Documentation URL. */
            __( "Need more help? <a href='%s'>We got it</a>." ),
            __( 'https://wordpress.org/support/article/editing-wp-config-php/' )
        ) . '</p>';
        $die .= '<p>' . sprintf(
            /* translators: %s: wp-config.php */
            __( "You can create a %s file through a web interface, but this doesn't work for all server setups. The safest way is to manually create the file." ),
            '<code>wp-config.php</code>'
        ) . '</p>';
        $die .= '<p><a href="' . $path . '" class="button button-large">' . __( 'Create a Configuration File' ) . '</a>';
    
        wp_die( $die, __( 'WordPress &rsaquo; Error' ) );
    }
    
    <!-- end -->
    

    and please change file permission 644 to 444.