WordPressでNotice:has_capが・・・というエラーが出たときの対処法
昔作ったテンプレートから再利用しようと管理画面のコードをコピペしたら次のようなエラーが出ました。
PHP Notice: has_cap がバージョン 2.0 から非推奨になった引数付きで呼び出されました。 プラグインやテーマでのユーザーレベルの使用は推奨されていません。代わりに権限グループと権限を使ってください。 in /home/hogehoge/hogehoge.com/public_html/wp-includes/functions.php
このエラーがででる原因と対策を防備録として書いておきます。
has_cap〜がでる原因と対策
has_capというのはユーザーの権限を確認するために使う関数です。なのでエラーが言いたいことを簡単に書くと
推奨された権限の確認方法ではない
ということです。
で、このエラーが出るのは管理画面に独自設定ページを追加する場合によくでるそうです。独自設定ページを追加する場合はadd_options_pageなどの関数を使うのですが昔は下記のように3番目の引数(権限の指定)を数字で指定することができました。
[php]add_options_page(*,*,8,*…)[/php]
数字の8が管理者権限を表していたのですが、今は数字でなく次のように書くことが推奨されています。
[php]add_options_page(*,*,’administrator’,*…)[/php]
昔のコードだったのでこれが悪かったんだなと思ったのも束の間、今回コピペしたコードにはadd_options_pageは使われていませんでした。
これは困った!と一瞬思ったのですが、よく見てみると今回のコードで使っていたのはadd_theme_pageという関数でした。これもadd_options_pageと同じようなものですが追加されるのは「外観」の中になります。引数も一緒なので次のように修正して事なきを得ました。
[php]add_theme_page(*,*,’administrator’,*…)[/php]
古いコードを再利用するときは注意しなければなりませんね。
コメント
この記事へのコメントはありません。
コメントをどうぞ