なぜか「has_cap の使用はバージョン 2.0 から非推奨になりました」と怒られる件

デバッグモードを有効にすると、自作も含めて以下のエラーが複数出て悩んでいました。

Notice: has_cap の使用はバージョン 2.0 から非推奨になりました ! 代わりに プラグインやテーマでのユーザーレベルの使用は推奨されていません。代わりに権限グループと権限を使ってください。 を使ってください。 in …/wp-includes/functions.php on line 3551

日本語訳が少々変ですが(^^;)要は非推奨の設定がある、とのこと。

 特定のプラグインを止めるとこのエラーも消えるので、間違いなくプラグインのコーディングに関連している。
しかし、エラーメッセージの指定個所がコアファイルなもんだから原因の追跡が極めて困難。
該当行を見てもなんのヒントもない。

色々シラミ潰しに調べていったら add_options_page にたどり着きました。
具体的には、以下のように書いてありました。

add_options_page(__('Plugin Setting'), __('Plugin Setting'), 8, basename(__FILE__), 'options_page');

 

 

さて、問題点が分かりますでしょうか?

 

 

 

 

 

 

答えは、こちらです。

add_options_page(__('Plugin Setting'), __('Plugin Setting'), 'manage_options', basename(__FILE__), 'options_page');

すなわち、権限設定を数字で書いていたのがいけない、ということなのです。

もう一度エラーメッセージを見てみましょう。

Notice: has_cap の使用はバージョン 2.0 から非推奨になりました ! 代わりに プラグインやテーマでのユーザーレベルの使用は推奨されていません。代わりに権限グループと権限を使ってください。 を使ってください。 in …/wp-includes/functions.php on line 3551

なるほど、おっしゃるとおり。

 

ですが、、、、

 

このエラーじゃ分かりません!\(^○^)/ 

 

確認のためCodex見に行ったら・・・直ってないし日本語ページ・・・ orz

 

もし同様のエラーが出た場合は、Codexの権限・権限グループテーブルを参考に変更してみてください。

 

でわまた。