4

私の問題は、バックアップバディを使用してウェブサイトを別のサーバーに移行した後、死の白い画面に遭遇したことでした.

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');
  1. 「die('boom');」を追加すると 「include_once('widget-price_filter.php');」の前に =ブームが印刷されます。
  2. 「die('boom');」を追加すると 「include_once('widget-price_filter.php');」の後 =ブームは印刷されません。

つまり、バグは widget-price_filter.php の中にあると言っても過言ではありません。

問題は、widget-price_filter.php の先頭にサイコロを追加すると、それが出力されないことです。エラーが発生した行がどこにもないようなものです。

これの原因は何ですか?

4

1 に答える 1

6

つまり、バグは widget-price_filter.php の中にあると言っても過言ではありません。

はい、完全に(そして、正しいデバッグ方法に従いました)。

問題は、widget-price_filter.php の先頭にサイコロを追加すると、それが出力されないことです。エラーが発生した行がどこにもないようなものです。

(あなたが言ったように)die('HELLO');一番上(の後ろ<?php)に追加したのに表示されない場合-これは2つの問題のうちの1つがあることを意味します

  1. ファイルが見つかりません
  2. そのページの構文エラー。

次の 3 つの方法のいずれかで解決できます。

  1. PHP エラー ログを確認します (アクセスできる場合)。
  2. "include_one" (init.php 内) を呼び出す前に、以下を追加します。

    error_reporting(E_ALL);
    ini_set('display_errors', 'on');
    
  3. コードを完全に空にします ( <?php die('HELLO'); ?>.

ルート 2 を取得した場合は、機能するようになったら忘れずに取り出してください。非常に重要です。

投稿する前に実際に時間をかけて自分で解決しようとしたことに対する+1(エコーとダイを使用)。だから私はそれが残りを助けることを願っています.

于 2012-09-14T01:52:14.867 に答える