Как исправить ошибку wp-blog-header.php?

25 мар. 2011 г., 17:13:20
Просмотры: 57.1K
Голосов: 4

Недавно я обновил сайт и получил следующее сообщение об ошибке:

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

Я проверил файл, и там, кажется, нет никаких проблем, поэтому я не могу понять, в чем дело?

<?php
/**
 * Загружает окружение WordPress и шаблон.
 *
 * @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' );

}

?>

Буду очень благодарен за любую помощь.

1
Комментарии

Где вы взяли этот вызов? Будьте немного конкретнее и покажите нам шаблон, в котором он появляется. Похоже, что вы пытаетесь получить доступ к какой-то части WP (напрямую) без его загрузки.

kaiser kaiser
25 мар. 2011 г. 17:36:25
Все ответы на вопрос 5
2

Для загрузки WordPress достаточно загрузить файл "wp-load.php", как вы и сделали. Я не знаком с функцией wp() и не нашел ее в исходном коде. Поскольку другие пользователи в интернете сталкиваются с такой же проблемой, возможно, это связано с плагином или устаревшей версией WordPress.

Отключите все плагины и проверьте, решит ли это проблему.

Из любопытства: для чего предназначен этот файл?

25 мар. 2011 г. 18:04:48
Комментарии

Это сайт-каталог. Я просто обновлял WordPress из панели управления? Я удалил все и загрузил новую установку через FTP. Теперь все, кажется, работает нормально. Спасибо за помощь.

Marna Marna
27 мар. 2011 г. 07:01:46

Ах да, теперь вижу! Думал, что это часть кода вашей темы. Но вы правы, это часть ядра WordPress. Рад, что "переустановка" помогла вам решить проблему.

marvinhagemeister marvinhagemeister
28 мар. 2011 г. 11:01:51
0

Я согласен. Обычно, по моему опыту, такие проблемы вызывает какой-то плагин. Это может быть головной болью, но отключение всех плагинов, а затем их поочередное включение часто помогает выявить проблемный плагин.

25 мар. 2011 г. 19:10:15
1

Я столкнулся с той же проблемой, и вот лучшее решение: Исправить ошибку wp-blog-header.php

26 июл. 2017 г. 20:15:14
Комментарии

Обновитесь до последней версии WordPress.

Steve Kinzey Steve Kinzey
16 окт. 2023 г. 07:15:20
0

Я столкнулся с этой ошибкой при переносе файлов моего сайта с HostGator на другой хостинг. Я заархивировал файлы в ZIP и передал их на новый хостинг через FTP. Похоже, что-то пошло не так при сжатии файлов. Когда я заархивировал их с помощью tar.gz, всё заработало нормально. Это помогло мне после нескольких часов мучений.

Вероятно, проблема была в кодировке файлов.

7 нояб. 2016 г. 14:49:19
2
-1

Возникла проблема с WordPress. Пожалуйста, обновите ваш файл wp_load.php, используя этот код.

<!-- start -->

<?php
/**
 * Базовый файл для установки константы ABSPATH
 * и загрузки файла wp-config.php. Файл wp-config.php
 * затем загрузит файл wp-settings.php, который
 * настроит окружение WordPress.
 *
 * Если файл wp-config.php не найден, будет отображена ошибка
 * с просьбой к посетителю настроить файл wp-config.php.
 *
 * Также выполняется поиск wp-config.php в родительской директории WordPress,
 * чтобы оставить директорию WordPress нетронутой.
 *
 * @package WordPress
 */

/** Определение ABSPATH как директории этого файла */
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 );

/*
 * Если wp-config.php существует в корне WordPress, или если он существует в корне,
 * а wp-settings.php нет, загрузить wp-config.php. Вторичная проверка wp-settings.php
 * также помогает избежать случаев, когда текущая директория является вложенной установкой,
 * например, / — это WordPress(a), а /blog/ — WordPress(b).
 *
 * Если ни одно из условий не выполняется, инициировать загрузку процесса установки.
 */
if ( file_exists( ABSPATH . 'wp-config.php' ) ) {

    /** Конфигурационный файл находится в ABSPATH */
    require_once( ABSPATH . 'wp-config.php' );

} elseif ( @file_exists( dirname( ABSPATH ) . '/wp-config.php' ) && ! @file_exists( dirname( ABSPATH ) . '/wp-settings.php' ) {

    /** Конфигурационный файл находится на уровень выше ABSPATH, но не является частью другой установки */
    require_once( dirname( ABSPATH ) . '/wp-config.php' );

} else {

    // Конфигурационный файл не существует

    define( 'WPINC', 'wp-includes' );
    require_once( ABSPATH . WPINC . '/load.php' );

    // Стандартизация переменных $_SERVER для разных настроек.
    wp_fix_server_vars();

    require_once( ABSPATH . WPINC . '/functions.php' );

    $path = wp_guess_url() . '/wp-admin/setup-config.php';

    /*
     * Мы собираемся перенаправить на setup-config.php. Хотя это не должно привести
     * к бесконечному циклу, глупо предполагать, что так и будет. Если мы ходим по кругу,
     * наш последний вариант — "Нужна дополнительная помощь?"
     */
    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 = sprintf(
        /* translators: %s: wp-config.php */
        __( "Похоже, файл %s отсутствует. Он необходим для начала работы." ),
        '<code>wp-config.php</code>'
    ) . '</p>';
    $die .= '<p>' . sprintf(
        /* translators: %s: Ссылка на документацию. */
        __( "Нужна дополнительная помощь? <a href='%s'>Мы поможем</a>." ),
        __( 'https://wordpress.org/support/article/editing-wp-config-php/' )
    ) . '</p>';
    $die .= '<p>' . sprintf(
        /* translators: %s: wp-config.php */
        __( "Вы можете создать файл %s через веб-интерфейс, но это работает не на всех серверах. Надежнее создать файл вручную." ),
        '<code>wp-config.php</code>'
    ) . '</p>';
    $die .= '<p><a href="' . $path . '" class="button button-large">' . __( 'Создать файл конфигурации' ) . '</a>';

    wp_die( $die, __( 'WordPress &rsaquo; Ошибка' ) );
}

<!-- end -->

И, пожалуйста, измените права доступа к файлу с 644 на 444.

20 июн. 2020 г. 18:22:21
Комментарии

Пожалуйста, [отредактируйте] ваш ответ и добавьте объяснение: почему это может решить проблему? Это выглядит как очень плохая идея — редактировать ядро системы без какой-либо причины.

fuxia fuxia
20 июн. 2020 г. 19:23:20

Согласен, @fuxia.

@sumer-signh-harawat — Будьте добры объяснить @marna (и всем нам, кто это читает), почему изменения в wp-load.php могут исправить проблему. Кроме того, эти изменения, скорее всего, будут перезаписаны при обновлении WordPress, поэтому стоит отметить, что данную модификацию необходимо проверять после каждого обновления (и повторно применять каждый раз, когда она изменяется).

Mort 1305 Mort 1305
21 июн. 2020 г. 08:30:16