概要
ure_do_not_remove_from_admin_bar
フィルタは、WordPressの「User Role Editor」プラグインが提供するフィルタの1つです。このフィルタは、特定のユーザーロールが管理バーから特定の項目を削除されないようにするためのものです。主に、管理者や特定の権限を持つユーザーが意図しない形で機能やセクションが失われないようにする際に利用されます。
このフィルタは、以下のような機能を実装する際によく使われます。
- 管理バーのカスタマイズ
- 特定のユーザーに対してUI要素の視認性を確保
- ショートカットやリンクを特定のユーザーのために保持
- プラグインによる機能追加時の管理バーの調整
- ユーザー権限に基づくダイナミックなUI変更
- 権限の変更による管理バーの自動更新を防ぐ
構文
add_filter('ure_do_not_remove_from_admin_bar', 'your_custom_function');
パラメータ
$user_roles
: ユーザー権限の配列
戻り値
- フィルタを通じて変更されたユーザー権限の配列
バージョン情報
- User Role Editor プラグインのバージョン: 4.60以降
- WordPressのバージョン: 5.0以降
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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
add_filter('ure_do_not_remove_from_admin_bar', function($user_roles) {
// 管理者のみ特定のショートカットを保持
return array_merge($user_roles, ['administrator']);
});
このサンプルコードは、管理者ロールのユーザーが管理バーに特定のショートカットを常に表示されるように追加します。
サンプルコード 2
add_filter('ure_do_not_remove_from_admin_bar', 'keep_custom_link');
function keep_custom_link($user_roles) {
if (in_array('editor', $user_roles)) {
// エディターロールにも特定のリンクを追加
$user_roles[] = 'custom_link';
}
return $user_roles;
}
このコードは、エディターロールのユーザーが特定のカスタムリンクを管理バーで利用できるようにします。
サンプルコード 3
add_filter('ure_do_not_remove_from_admin_bar', 'restrict_admin_bar_items');
function restrict_admin_bar_items($user_roles) {
// サブスクリプションユーザーが特定のアイテムを持つ場合
if (in_array('subscriber', $user_roles)) {
$user_roles[] = 'specific_item';
}
return $user_roles;
}
このコードは、サブスクリプションユーザーが管理バーに特定のアイテムを持つことを許可します。
サンプルコード 4
add_filter('ure_do_not_remove_from_admin_bar', function($user_roles) {
// すべてのユーザーに特定のアイテムを保持
return array_unique(array_merge($user_roles, ['always_visible_item']));
});
このサンプルは、すべての役割に対して特定のアイテムを管理バーに保持することを保証します。
サンプルコード 5
add_filter('ure_do_not_remove_from_admin_bar', 'customize_management_bar');
function customize_management_bar($user_roles) {
// ロールに応じて異なるアイテムを追加
if (in_array('contributor', $user_roles)) {
$user_roles[] = 'custom_item_for_contributor';
}
return $user_roles;
}
このコードは、寄稿者ロールのユーザー専用に特定のカスタムアイテムを管理バーに追加します。