web-dev-qa-db-ja.com

PHP 致命的なエラー:wp-includes/capabilities.phpの非オブジェクトに対してオーバーロードされた関数を呼び出せません

私は私のApacheログであまりにも多くの以下のエラーを経験しています。

PHP致命的なエラー:1187行目のwp-includes/capabilities.phpの非オブジェクトに対してオーバーロードされた関数を呼び出せません

これは関数current_user_can($ capability)の内部にあり、行1187は次のとおりです。

$current_user = wp_get_current_user();

何が問題になる可能性があるのか​​把握できませんか。

3
pankajbatra

この問題は通常、PHP設定の問題、APCのキャッシュ、および/または互換性のないXMLライブラリへの呼び出しから発生します。

私が見たことから、それは通常php 5.2.Xとキャッシングの組み合わせです。サイトでキャッシュを使用している場合は、APC/memcachedキャッシュからディスクキャッシュに切り替えて、クリアされるかどうかを確認してください。 9/10回、サーバーレベルでAPCを無効にすると、APCもクリアされます(完全なサーバーアクセスがある場合)。ホストではデフォルトでAPCが有効になっている可能性があることに注意してください。

それまでの間、wp-config.phpに次の行があることを確認してください。

/**
 * This will log all errors notices and warnings to a file called debug.log in
 * wp-content (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);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);

これはWPデバッグをオンにし、/wp-content/debug.logに出力されます。これは完全なスタックトレースではありませんが、これらのエラーがエンドユーザーに表示されるのを防ぎ、見たことがないその他のエラーをログに記録する可能性があります。 Debug Barプラグインをインストールすることもできます。(管理者のみ)エラー/通知、phpによるメモリ使用量(制限を増やす必要があるかどうか)、クエリ数(SAVE_QUERIESが設定されている場合)ページを生成するなどです。 XDebugを使用してPHPを設定することもできます(これにより、PHPエラーに関するフルスタックトレースが生成されます)。

私はこれのいくつかが少なくともあなたを正しい方向に向けることを望みます。

2
SickHippie

ちょっと私は このフォーラム で答えを見つけました。

「問題の解決方法を共有したいのですが、cpanelのコントロールパネルで「Select PHP version」を選択し、次に「PHP Version 5.5」を選択して、「保存」をクリックします。」

私のために働きました。それはゴダディなphp設定の問題のようです。私のエラーメッセージはuser.phpの行の機能ではありませんでした。

1
Celso

私は通常これらの機能の問題はどこかのプラグインにあることになることを発見しました(エラーがそれがコアワードプレスにあるように見えるので見つけるのが難しいです)。

オブジェクトではない部分は、wpがまだ$ current_userオブジェクトセットアップを持っていないことを意味するかもしれません - ワードプレスアクションの早すぎる能力チェックへの呼び出しを意味するかもしれません。

オーバーロード部分は通常、wpがフェッチしようとしているのはユーザーメタ値であることを意味します(これは機能です)。

最善の方法は、メッセージが消えるまでプラグインを一つずつ無効にすることです - そして、あなたはそれが少なくともどのプラグインであるかを知っています。いつそれが起こっているのかわからない場合は少し難しいです - それがどのページにあるのか、それが起こったときに何の人がしているのかわかりますか?

それからプラグインのワードプレス機能を見てください - おそらくアクションシーケンスの初期段階にある追加アクションでしょうか? http://codex.wordpress.org/Plugin_API/Action_Reference

(また、各プラグインをそのメッセージの後半部分でグーグルすることもできますか?

例: "1187行目のwp-includes/capabilities.php"で私にくれた: http://support.dev7studios.com/discussions/nivo-slider-wordpress-plugin/544-fatal-error

どうやって行くのか教えてください

0
anmari