概要
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」ロールを追加します。