概要
ure_addons_to_copy_for_new_blogは、WordPressのプラグイン「User Role Editor」のフィルターフックで、新しいブログを作成する際に特定のユーザー役割やパーミッションをコピーする機能を拡張するために使用されます。このフィルターは、特定のデータを新しいブログにコピーする条件をカスタマイズすることができます。主に以下のような機能を実装する際に利用されます。
- ユーザー権限のカスタマイズ
- 特定のロールのデフォルト設定を変更
- サイト間でのユーザーデータの移行
- 新しいサイトにおけるカスタムパーミッションの設定
- 複数サイト間の権限管理の効率化
- ユーザー役割に関連したデータの一括管理
構文
add_filter('ure_addons_to_copy_for_new_blog', 'custom_copy_roles', 10, 2);
パラメータ
$roles(array): 新しいブログにコピーされるユーザー役割のリスト。$site_id(int): 新しいサイトのID。
戻り値
- array: 変更されたユーザー役割のリスト。
プラグインとWordPressのバージョン
- 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_addons_to_copy_for_new_blog', 'custom_user_roles', 10, 2);
function custom_user_roles($roles, $site_id) {
if ($site_id === 2) {
$roles[] = 'editor';
}
return $roles;
}
このコードは、新しいサイトがID 2の場合に「editor」ロールを追加します。
サンプルコード2
add_filter('ure_addons_to_copy_for_new_blog', 'restrict_roles', 10, 2);
function restrict_roles($roles, $site_id) {
return array_diff($roles, array('subscriber'));
}
このコードでは、新しいブログに「subscriber」ロールがコピーされないようにしています。
サンプルコード3
add_filter('ure_addons_to_copy_for_new_blog', 'custom_role_permissions', 10, 2);
function custom_role_permissions($roles, $site_id) {
$roles['author']['capabilities']['edit_posts'] = true;
return $roles;
}
このコードは、新しいブログで「author」ロールの「edit_posts」権限を有効にします。
サンプルコード4
add_filter('ure_addons_to_copy_for_new_blog', 'add_custom_roles', 10, 2);
function add_custom_roles($roles, $site_id) {
$roles[] = 'custom_role';
return $roles;
}
このコードは、新しいサイトに「custom_role」を追加します。
サンプルコード5
add_filter('ure_addons_to_copy_for_new_blog', 'update_existing_roles', 10, 2);
function update_existing_roles($roles, $site_id) {
if (in_array('administrator', $roles)) {
$roles[] = 'manager';
}
return $roles;
}
このコードは、既存の「administrator」ロールがある場合に「manager」ロールを追加します。