概要
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;
});
このコードでは、配列を使用して複数のロール名をデフォルトの翻訳に基づいて変更します。該当するロールがない場合は元の値を返します。