1. ホーム
  2. WordPress
  3. WordPressでNotice:has_capが・・・というエラーが出たときの対処法

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]

古いコードを再利用するときは注意しなければなりませんね。

スポンサーリンク

コメント

この記事へのコメントはありません。

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)