WP Tuner и WordPress 3.0
-
Проблема
WP Tuner 0.9.6 в WordPress 3.0 приводит к белому экрану.
Решение
В процессе обсуждения с rxs найдено решение:
- Создать файл
wp-content/db.php
и скопировать туда код плагина изwp-config.php
:<?php //-WP Tuner Plugin by MrPete------------ //-------------------------------------- global $wpTunerStart, $wpTunerStartCPU; $wpTunerStart = microtime(); // get start time as early as we can if ( function_exists( 'getrusage' ) ) { $wpTunerStartCPU = getrusage(); } @include_once(dirname(__FILE__).'/plugins/wptuner/wptunertop.php'); // fire up WPTuner //-------------------------------------- //-END WP Tuner Plugin------------------ ?>
Обратите внимание — из пути нужно убрать каталог
wp-content
, т.к. он стал текущим. Также необходимо объявить переменные$wpTunerStart
и$wpTunerStartCPU
как глобальные. - Удалить код плагина из
wp-config.php
. - Заменить строку в файле
wptunertop.php
в каталоге плагина:define('WPTUNER_NOTCONFIG',((defined('ABSPATH')&&defined('WP_MEMORY_LIMIT')) ? 1 : 0 )); // if ABSPATH is set, either we're loaded way too late (in an older rev of WP), or (if WP_MEMORY_LIMIT is also set) in a new rev.
на следующую:
define('WPTUNER_NOTCONFIG', false);
- Закомментировать вызов функции
wptuner_wpconfig_inject()
в строках 114 и 319 файлаwptunersetup.php
(подсказал dwertheimer):// wptuner_wpconfig_inject();
Подробности
Задача
wptunertop.php
— загрузить плагин как можно раньше, ещё до подключения файлаwp-db.php
, который затем подключается в самом плагине. С 3.0 это не проходит, потому что в конструкторе классаwpdb
вызывается функцияis_multisite()
, однако она ещё не определена из-за нарушения последовательности вызова.При перемещении в
wp-content/db.php
файл по-прежнему загружается до инициализации БД и подключения большинства файлов, т.е. соблюдается задуманный алгоритм. - Создать файл
- Тема «WP Tuner и WordPress 3.0» закрыта для новых ответов.