概要
ure_admin_menu_access_allowed_args
フィルタは、WordPressのUser Role Editorプラグインにおいて、管理者メニューのアクセス許可に関連する引数を変更するために使用されます。このフィルタを使用することで、特定のユーザー役割に対して許可されたメニュー項目をカスタマイズしたり、特定の条件に基づいて制御したりすることが可能です。
よく使われる機能には以下のようなものがあります:
- 特定のロールのユーザーに対して特定のメニューを非表示にする。
- ユーザーがアクセスできる管理者メニューを動的に変更する。
- 新しいカスタムロールを作成した際に、権限を与えるメニューを調整する。
- プラグインやテーマによって提供されるメニューに対するアクセスを制御する。
- 役割ごとに異なるユーザーインターフェースを提供する。
- プライベートコンテンツへのアクセスを管理する。
このフィルタは、User Role Editorプラグインのバージョン4.55以降で、WordPressのバージョン5.0以降で利用可能です。
構文
add_filter('ure_admin_menu_access_allowed_args', 'my_custom_allowed_args');
function my_custom_allowed_args($args) {
// 引数をカスタマイズ
return $args;
}
パラメータ
$args
: 管理メニューへのアクセスを制御するための引数の配列。この引数を変更することで、アクセス権限を自由に調整できます。
戻り値
- このフィルタは、変更された引数の配列を返します。
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル1: 特定のユーザーロール用にメニューを非表示にする
このサンプルコードは、特定のユーザーロール(”subscriber”)向けに特定のメニューを非表示にするものです。
add_filter('ure_admin_menu_access_allowed_args', 'hide_menu_for_subscriber');
function hide_menu_for_subscriber($args) {
if (current_user_can('subscriber')) {
// 指定のメニューを非表示にする
unset($args['menu']['my_custom_menu']);
}
return $args;
}
サンプル2: 管理メニューの追加権限を設定する
このサンプルでは、”editor”ロールに対して特定のメニューを追加する際の権限を動的に設定します。
add_filter('ure_admin_menu_access_allowed_args', 'add_menu_for_editor');
function add_menu_for_editor($args) {
if (current_user_can('editor')) {
$args['menu']['new_custom_menu'] = 'edit_posts'; // 編集権限を追加
}
return $args;
}
サンプル3: カスタムロール用にメニューを調整
このコードは、新しく作成したカスタムロールのために特定のメニューを表示する方法を示しています。
add_filter('ure_admin_menu_access_allowed_args', 'custom_role_menu_access');
function custom_role_menu_access($args) {
if (current_user_can('custom_role')) {
$args['menu']['custom_menu'] = 'read'; // 読み取り権限を付与
}
return $args;
}
サンプル4: 管理者メニューの制御
このサンプルは、ユーザーが”administrator”ロールかどうかを確認し、それに基づいてメニューのアクセスを変更します。
add_filter('ure_admin_menu_access_allowed_args', 'admin_menu_control');
function admin_menu_control($args) {
if (!current_user_can('administrator')) {
// 管理者以外は特定のメニューを非表示
unset($args['menu']['admin_settings']);
}
return $args;
}
サンプル5: 特定条件下でのメニューの表示制御
このコードは、特定の条件が満たされた場合にのみメニューを表示する機能を提供します。
add_filter('ure_admin_menu_access_allowed_args', 'conditional_menu_display');
function conditional_menu_display($args) {
if (is_user_logged_in() && current_user_can('manage_options')) {
// 管理権限がある場合のみメニューを追加
$args['menu']['advanced_settings'] = 'manage_options';
}
return $args;
}
これらのサンプルコードはGitHubやWordPressの公式ドキュメントなどに良く見られる一般的なコード例を元にしており、ユーザーが自分自身のニーズに合わせてカスタマイズできるように設計されています。