プラグインUser Role Editorのure_do_not_remove_from_admin_barフィルタの使用方法・解説

概要

ure_do_not_remove_from_admin_bar フィルタは、WordPressの「User Role Editor」プラグインが提供するフィルタの1つです。このフィルタは、特定のユーザーロールが管理バーから特定の項目を削除されないようにするためのものです。主に、管理者や特定の権限を持つユーザーが意図しない形で機能やセクションが失われないようにする際に利用されます。

このフィルタは、以下のような機能を実装する際によく使われます。

  1. 管理バーのカスタマイズ
  2. 特定のユーザーに対してUI要素の視認性を確保
  3. ショートカットやリンクを特定のユーザーのために保持
  4. プラグインによる機能追加時の管理バーの調整
  5. ユーザー権限に基づくダイナミックなUI変更
  6. 権限の変更による管理バーの自動更新を防ぐ

構文

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;
}

このコードは、寄稿者ロールのユーザー専用に特定のカスタムアイテムを管理バーに追加します。

この関数について質問する


上の計算式の答えを入力してください