web-dev-qa-db-ja.com

なぜ私のプラグインは自動的に非アクティブ化し続けるのですか?

私はプラグインディレクトリからダウンロードした 'virtual theme'と呼ばれるプラグインを持っています、そしてそれは素晴らしい働きをしますが、私は時々気付かずに他のプラグインでそれが動かなくなるように思えます。プラグインページに移動しても、アクティブのように表示されます。だから私はそれが再び動作させるためにしなければならないのはそれが動作を開始することができるように非アクティブ化をクリックしてからアクティブ化をクリックすることです。私は、このプラグインが機能しなくなった別のプラグインを無効にすることになると、これがより起こることに気付きます。また、たとえばbbpressのようにオプションを変更した後に変更を加えると、Virtual Themeが機能しなくなることがあります。誰がそれがなぜそうするのか知っていますか。

1
Alex Pena

それはエラーレポートなしでちょっと推測的なゲームです。これは、あなたや他の人が原因を診断するのに役立つ情報を集めるいくつかの方法です。

WPデバッグをオンにします。

WordPress WP DEBUG Codexページ *デフォルトであなたのwp-config.phpファイルでdefine('WP_DEBUG', true);を使うことを選択した場合、あなたのサイトがライブである場合は注意してくださいエラーはライブサイトに表示されます。

WP-Debug(ライブサイトに向いている):

テーマのfunctions.phpファイルに次のコードを追加します。現在のページのURLの最後に? debug=1?debug=2、または?debug=3を追加した場合にのみエラーが表示されます。

<?php 
/**
* Written by Jared Williams - http://new2wp.com
* @wp-config.php replace WP_DEBUG constant with this code
* Enable WP debugging for usage on a live site
* http://core.trac.wordpress.org/browser/trunk/wp-includes/load.php#L230
* Pass the '?debug=#' parameter at the end of any url on site
*
* http://example.com/?debug=1, /?debug=2, /?debug=3
*/
if ( isset($_GET['debug']) && $_GET['debug'] == '1' ) {
    // enable the reporting of notices during development - E_ALL
    define('WP_DEBUG', true);
} elseif ( isset($_GET['debug']) && $_GET['debug'] == '2' ) {
    // must be true for WP_DEBUG_DISPLAY to work
    define('WP_DEBUG', true);
    // force the display of errors
    define('WP_DEBUG_DISPLAY', true);
} elseif ( isset($_GET['debug']) && $_GET['debug'] == '3' ) {
    // must be true for WP_DEBUG_LOG to work
    define('WP_DEBUG', true);
    // log errors to debug.log in the wp-content directory
    define('WP_DEBUG_LOG', true);
}
?>

参照と使用方法の説明: Stack Exchange adminベストコレクションスニペ​​ット

Log Deprecated Functionsプラグイン:

あなたのテーマやプラグインが問題を引き起こす可能性のある非推奨の関数を使っているかどうかを確認します。

エラーログを有効にする:

wp-config.php内の現在のコードをこれで置き換えて、正しい方向を示すエラーログを作成できるようにします。

/**
 * This will log all errors notices and warnings to a file called debug.log in
 * wp-content only when WP_DEBUG is true. if Apache does not have write permission, 
 * you may need to create the file first and set the appropriate permissions (i.e. use 666).
 */

define('WP_DEBUG', true); // or false
if (WP_DEBUG) {
  define('WP_DEBUG_LOG', true);
  define('WP_DEBUG_DISPLAY', false);
  @ini_set('display_errors',0);
}

参考文献:

どちらを使用して実装するかを決定したら、問題の診断に役立つデータの収集を開始します。データを解読するのに手助けが必要な場合は、ここに投稿してください。たぶん私は助けることができますか、または他の誰かがあなたを助けることができます。

2
Jeremy Jared