web-dev-qa-db-ja.com

Wordpress Multisite - ユーザーがメインサイトにサインアップするとき、ユーザーをサブサイトに追加する方法

私はWordpressマルチサイトネットワークを設定しています。そこでは、ユーザーはメインサイトの1つ以上のサービスに加入し、サブサイトのコンテンツにアクセスすることができます。サブサイトへのアクセスは、メインサイトで購読しているサービスによって異なります。

ユーザーがメインサイトに登録するとき、私はいくつかのコードを使用してやりたいのですが、私はそのサブサイトにそのユーザーを追加し、サブサイトへのアクセス権を定義するアクセスを管理する

私の主な質問は、ユーザーがメインサイトにサインアップするときにサブサイトにユーザーを追加するためにどのようなコードを使用できるかということです。

4
nitigyan

ユーザー作成後に add_user_to_blog() を実行します。

user_register() にフックして、新しく作成されたユーザーIDを取得し、それをadd_user_to_blog()を実行するコールバックに渡すことができます。

6
hwl

@hwl の回答を完成させます。

ほとんどの場合、WordPressのMultisiteインスタンスでは、ユーザー登録にアクティベーション手順が含まれています。

この場合、wpmu_activate_userにアクションをフックする必要があります。 user_registerのアクションフックは無視されます。例えば:

my_function($user_id)   {
    // to add a user to main site (id=1) as a subscriber add_user_to_blog can be used
    // more info: https://codex.wordpress.org/Function_Reference/add_user_to_blog
    add_user_to_blog( '1', $user_id, 'subscriber' );
}
add_action('wpmu_activate_user','my_function',10,1);
2
skotperez