MENU

add_new_user_to_blog()

add_new_user_to_blog() は、WordPressのマルチサイト環境において、既存のユーザーを特定のサイトに追加するための関数です。

通常、マルチサイトではユーザーごとにアクセスできるサイトが決まっていますが、この関数を使うことで、特定のサイトに新しいユーザーを登録することができます。

例えば、新規登録者を自動的に特定のサブサイトに追加したり、管理者が手動でユーザーを追加する機能を実装する際に活用できます。

目次

機能の説明

どんな時に使うのか?

この関数は、マルチサイト環境で以下のようなシナリオで使用されます。

  • ユーザーを特定のブログ(サブサイト)に追加する
  • サイト管理者が手動でユーザーを追加する際に利用
  • プラグインやカスタム機能で自動的にユーザーをサイトに割り当てる

基本的な動作

add_new_user_to_blog( $blog_id, $user_id, $role )

この関数を使うと、指定したブログ(サイト)にユーザーを追加し、指定の権限を付与できます。

シンプルなコード例

add_new_user_to_blog(2, 5, 'editor');
  • 2:ブログID(サブサイトのID)
  • 5:ユーザーID(追加するユーザーのID)
  • 'editor':ユーザーに付与する権限(例:編集者)

このコードを実行すると、IDが 5 のユーザーがID 2 のブログに 編集者(Editor) として追加されます。

使い方の説明

以下のようなコードを使うことで、ユーザー登録時に自動でサブサイトに追加することができます。

function add_user_to_subsite($user_id) {
    $blog_id = 3; // 追加したいサイトのID
    $role = 'subscriber'; // 付与する権限

    add_new_user_to_blog($blog_id, $user_id, $role);
}
add_action('user_register', 'add_user_to_subsite');

引数の説明

  • $user_id:追加するユーザーのID(user_register フックで取得可能)
  • $blog_id:追加先のブログID
  • $role:付与するユーザーの権限(例:subscribereditoradministrator など)

このコードを functions.php に追加すると、新規ユーザーが登録されるたびに、自動的にID 3 のブログに 購読者(Subscriber) として追加されます。

一緒に使うことが多い関連タグ

get_current_blog_id()

現在のサイトのIDを取得する関数です。add_new_user_to_blog() で動的にサイトを切り替えたい場合に使います。

$blog_id = get_current_blog_id();
add_new_user_to_blog($blog_id, 5, 'author');

add_user_to_blog()

ユーザーをサイトに追加する別の方法です。

add_user_to_blog(2, 5, 'contributor');

追加情報で取得したい場合

get_blogs_of_user()

特定のユーザーが所属しているブログを取得できます。

$blogs = get_blogs_of_user(5);
foreach ($blogs as $blog) {
    echo 'サイト名: ' . $blog->blogname . '<br>';
}

remove_user_from_blog()

サイトからユーザーを削除する場合に使用します。

remove_user_from_blog(5, 2);

想定されるトラブル

ユーザーが追加されない

  • blog_id が正しいか確認
  • user_id が存在するか確認
  • 指定した role が正しく定義されているか確認

Q&A

add_new_user_to_blog() は通常のシングルサイトでも使えますか?

いいえ、マルチサイト環境でのみ使用可能です。

追加するユーザーがすでにサイトに登録されている場合はどうなりますか?

既に登録済みのユーザーであれば、そのユーザーの権限は更新されません。

ユーザーの権限を後から変更するには?

wp_update_user() を使用します。

wp_update_user(array(
    'ID'   => 5,
    'role' => 'editor'
));

まとめ

add_new_user_to_blog() は、WordPressマルチサイト環境でユーザーを特定のサイトに追加するための関数です。

ユーザー登録時の自動追加や、管理者による手動追加のカスタマイズに適しています。同様の機能を持つ add_user_to_blog() との違いも把握し、適切に活用しましょう。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次