Поддержка Плагины WP Tuner и WordPress 3.0

  • Модератор Sergey Biryukov

    (@sergeybiryukov)


    Live and Learn

    Проблема

    WP Tuner 0.9.6 в WordPress 3.0 приводит к белому экрану.

    Решение

    В процессе обсуждения с rxs найдено решение:

    1. Создать файл 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 как глобальные.

    2. Удалить код плагина из wp-config.php.
    3. Заменить строку в файле 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);

    4. Закомментировать вызов функции 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 файл по-прежнему загружается до инициализации БД и подключения большинства файлов, т.е. соблюдается задуманный алгоритм.

Просмотр 1 ответа — с 1 по 1 (всего 1)
  • Сергею спасибо за разбор и объяснение с программной точки зрения.

    Могу еще добавить, что Сергей и я думаем, что wptunertop.php незначительно влияет на

    точность отображения времени загрузки

    тогда в простом варианте решения проблемы белого листа достаточно переименовать папку плагина wptuner на любое другое имя, например wptuner1 и заново активировать плагин.

    Ну и конечно ждем исправлений от автора wptuner.

Просмотр 1 ответа — с 1 по 1 (всего 1)
  • Тема «WP Tuner и WordPress 3.0» закрыта для новых ответов.