Wordpress неотслеживаемый белый экран смерти при миграции
Моя проблема заключалась в том, что после переноса веб-сайта на другой сервер с помощью backup buddy я наткнулся на белый экран смерти.
Я включил режим отладки в Wordpress и по-прежнему никаких ошибок, только белый экран.
Поэтому я попытался удалить все файлы и повторно загрузить их снова, оставив базу данных как есть (импортированную BackupBuddy), но она по-прежнему выдает мне белый экран.
Поэтому я попытался отследить конкретную линию, где появился белый экран, и застрял в странное поведение.
В /wp-content/plugins/woocommerce/widgets/widget-init.php :
include_once('widget-cart.php');
include_once('widget-featured_products.php');
include_once('widget-layered_nav.php');
include_once('widget-price_filter.php');
include_once('widget-product_categories.php');
include_once('widget-product_search.php');
include_once('widget-product_tag_cloud.php');
include_once('widget-recent_products.php');
include_once('widget-top_rated_products.php');
- Когда я добавляю "умереть ("бум"); "перед "include_once("widget-price_filter.php ');"= бум распечатан.
- Когда я добавляю "умереть ("бум"); "после "include_once("widget-price_filter.php ');"= бум НЕ распечатан.
Таким образом, можно с уверенностью сказать, что ошибка находится внутри widget-price_filter.php верно?
Проблема в том, что я добавляю кубик в начале widget-price_filter.php, он не распечатывает его. Это похоже на то, что строки, в которой произошла ошибка, нигде нет.
Что может быть причиной этого?
1 answers
Таким образом, можно с уверенностью сказать, что ошибка находится внутри widget-price_filter.php верно?
Да, полностью (и вы следовали правильному способу отладки).
Проблема в том, что я добавляю кубик в начале widget-price_filter.php, он не распечатывает его. Это похоже на то, что строки, в которой произошла ошибка, нигде нет.
Если (как вы говорите, вы сделали) вы добавили die('HELLO');
прямо вверху (после <?php
), и он не появляется - это означает, что есть одна из двух проблем
- Файл не найден
- Синтаксическая ошибка на этой странице.
Вы можете решить 1 из трех способов:
- Проверьте журналы ошибок php (если у вас есть доступ)
-
Перед вызовом "include_one" (в init.php ) добавить:
error_reporting(E_ALL); ini_set('display_errors', 'on');
Полностью очистите код (просто оставив
<?php die('HELLO'); ?>
, проверьте, что отображается, а затем добавьте код по частям.
Если у вас есть маршрут 2, не забудьте убрать его, когда вы это сработало. Очень важно!
+1 за то, что на самом деле потратил время, чтобы попытаться решить эту проблему самостоятельно, прежде чем публиковать (с помощью echo и die). Так что я надеюсь, что это поможет с остальным.