概要
translate_user_role
フィルタは、ユーザーのロール(権限グループ)名の翻訳テキストを取得する際に使用されます。このフィルタを利用することで、ユーザー権限の表示をカスタマイズしたり、多言語サイトに対応した権限表示を実現することができます。具体的には、以下のような機能実装に役立つことが多いです:
- ユーザー権限のカスタマイズ
- 多言語対応のユーザーインターフェース
- 特定のユーザーグループに合わせた表示変更
- サイトのブランディングに基づいたロール名の変更
- プラグインによるロールの追加や変更に対応
- ロール名のスタイル調整
- 権限管理プラグインとの連携
- 表示内容の動的変更
構文
add_filter('translate_user_role', 'custom_translate_user_role', 10, 2);
パラメータ
$translated_role
(string): 翻訳されたロール名$role
(string): 元のロール名
戻り値
- string: カスタマイズまたは変更されたロール名
関連する関数
使用可能なバージョン
WordPress 2.0以降で利用可能です。
コアファイルのパス
wp-includes/capabilities.php
この関数のアクションでの使用可能性
アクション | 使用可能 |
---|---|
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('translate_user_role', function($translated_role, $role) {
if ($role === 'editor') {
return '編集者'; // "editor" を "編集者" に翻訳
}
return $translated_role;
});
このコードは、ロール名 ‘editor’ を日本語の ‘編集者’ に変更します。
サンプルコード 2: 多言語対応のユーザーインターフェース
add_filter('translate_user_role', function($translated_role, $role) {
if ($role === 'administrator') {
return __('管理者', 'textdomain'); // 管理者ロールの翻訳
}
return $translated_role;
});
このコードでは、’administrator’ を多言語対応で ‘管理者’ に翻訳します。__('...')
関数はローカライズに使用します。
サンプルコード 3: スタイル調整
add_filter('translate_user_role', function($translated_role, $role) {
if ($role === 'author') {
return '<strong>著者</strong>'; // 'author' を太字の '著者' に変更
}
return $translated_role;
});
この例では、’author’ の表示を強調するために、太字スタイルで ‘著者’ に変更しています。
サンプルコード 4: プラグインによるロールの変更に対応
add_filter('translate_user_role', function($translated_role, $role) {
if ($role === 'subscriber') {
return '購読者'; // "subscriber" を "購読者" に変更
}
return $translated_role;
});
このコードは、’subscriber’ ロールの表示を ‘購読者’ に変更し、プラグインで追加されたロールにも対応します。
サンプルコード 5: デフォルトの翻訳にフィルターを追加
add_filter('translate_user_role', function($translated_role, $role) {
// デフォルトの翻訳を取得
$default_translations = [
'contributor' => '寄稿者',
'administrator' => '管理者',
];
return $default_translations[$role] ?? $translated_role;
});
このコードでは、配列を使用して複数のロール名をデフォルトの翻訳に基づいて変更します。該当するロールがない場合は元の値を返します。