「Notice: has_cap の使用は…」はプラグインを確認する
WordPress で 「PHP Notice: has_cap がバージョン 2.0 から<strong>非推奨</strong>になった引数付きで呼び出されました。 プラグインやテーマでのユーザーレベルの使用は推奨されていません。代わりに権限グループと権限を使ってください。 in /home/xjine/xn--lcki7of.jp/public_html/wp-includes/functions.php」 が表示されるとき、プラグインやテーマに問題がある可能性があります。
端的に言えば、数値を使って権限レベルを設定せず、権限名を使って権限レベルを設定するように、通知されています。詳細は後述します。
調査する限り、この問題の多くは、add_options_page
関数によって引き起こされているようです。私の場合も自作のプラグインがこれに該当しました。
問題の原因と解決
エラーコードに出力されている has_cap
関数は、ユーザの権限を確認するための関数です。WordPress では administrator(管理者) や、subscriber(購読者) などがあります。
cap は Capability を意味します。
add_options_page
関数は、プラグインやテーマ専用の設定ページを追加するための関数です。
この中に「どの権限のユーザに対し、追加する設定ページを表示するか」を設定するための引数があります。
add_options_page
関数の 3 つ目の引数です。
正常に動作するものの、add_options_page
の 3 つ目の引数に、ユーザ権限を設定するための数値を入力することは非推奨です。
この数値は、以前はユーザーレベル、権限レベルなどと呼ばれていましたが、現在は使われていません。
例えば、管理者は権限レベル 8 です。add_options_page
関数を使う際、add_options_page(*,*,8…)
などとすると、
追加される設定ページは、管理者にのみ表示されるようになります。しかしながらこの方法では、正常に動作するものの、ここで紹介するエラーが通知されます。
現在の WordPress の仕様では、add_options_page(*,*,'administrator'…)
と使うようにされています。
設定できる権限には他に、editor, author, contributor, subscriber などがあります。