経験知ロゴ

日々の経験を知識として発信するブログ

WordPressのプラグイン作成中に出る「has_cap」エラーの解決法

has_capエラー
WordPressのプラグインを作成している時に出たエラー

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

「を使ってください」をなぜ二回言っているのか分かりませんが、エラーの回避法をメモ。

管理メニューの権限設定を数字以外にする

管理メニューの追加 – WordPress Codex 日本語版」では、「add_options_page」を使用する際に

add_options_page('My Plugin Options', 'My Plugin', 8, __FILE__, 'my_plugin_options');

と三番目の引数(roles)に「8」を指定している。

エラーには「プラグインやテーマでのユーザーレベルの使用は推奨されていません。代わりに権限グループと権限を使ってください。」

とあるので、ユーザーレベルではなく、権限グループを入れてあげる。

とりあえず一般的な「administrator」に設定するとエラーは出なくなる。

add_options_page('My Plugin Options', 'My Plugin', 'administrator', __FILE__, 'my_plugin_options');

因みに他の権限グループにしたい場合は「Roles and Capabilities « WordPress Codex」を参考に。

わからないことは人に聞こう

プログラミングをする上で、わからないことはネットなどを使い自分で調べる技術が必要ですよね。

時間がかかっても、ある程度のことは解決できます。

しかし、どうしても答えにたどり着けなかったり、探す時間が惜しいときもあります。

そこでオススメなのが無料登録でプログラミングに関する質問ができるテラテイルです。

質問の投稿にコードも投稿できるので、自分のコードを投稿して問題のある箇所を指摘してもらうことができます。

プログラマーには、自分で探す技術も必要ですが、人に聞く技術は更に重要です。

登録無料で質問できますので、テラテイルで質問する力を磨いてみましょう!

おわりに

Codexの該当ページが2011年から現在(2014年6月4日)まで変更されていません。プラグインのところまではなかなか手がまわらないんですかね。

日本語翻訳も大変な作業です。翻訳をして下さる方々に感謝です。(自分も発言できるぐらいの知識や技術を身につけたいものです。)

▼この記事をシェアできるリンク


▼このブログをフォロー・RSS購読できるリンク