web-dev-qa-db-ja.com

複数のユーザーロールに対するadd_menu_page()

Wordpressのバックエンドメニューにカスタムページを追加すると

add_menu_page('My Custom Page', 'My Custom page', 'editor', 'custom_page','add_custom_page','dashicons-admin-comments',8);

編集権限を持つユーザーだけがメニューにそのページを表示できます。このメニュー項目を管理者権限を持つユーザーも利用できるようにするにはどうすればよいですか?すべてのユーザーロールに add_menu_page() を別々に使用する必要がありますか?

1
User95

Codexページでadd_menu_page ...を見てみましょう。

3番目のパラメータは次のとおりです。

$ capability (文字列)(必須)このメニューをユーザーに表示するために必要な機能。

あとで、Notesのセクションでも。

この関数は、ページがメニューに含まれているかどうかを判断するために使用される「機能」(役割と機能を参照)を取ります。ページの出力を処理するためにフックされている関数は、ユーザーが必要な「機能」も持っていることを確認する必要があります。

お分かりのように、あなたはそのパラメーターとしてユーザーロール(editorsubscriber)ではなく、機能(例えばmanage_optionspublish_posts)を使用すべきです。

そのため、3番目のパラメータとしてpublish_pagesを渡すと、そのページにアクセスできるのはEditor、Administrator、およびSuper Adminだけになります。

ここでは デフォルトユーザロールのデフォルト機能のリストを見つけることができます

3