マルチサイト用のis_user_logged_in()はありますか?


11

Wordpress MU /マルチサイト(3.0以降)用のis_user_logged_in()関数はありますか?site_idのようis_user_logged_in(2)にネットワークサイトIDを追加でき2ますか?

更新:

少し掘り下げた後、私は以下のコードを思いつきました。残念ながら動作しません。

//これは使用しないでください。動作しません。
function mu_logged_in($ blog_id){
    switch_to_blog($ blog_id);
        $ status = is_user_logged_in();
    restore_current_blog();
    $ statusを返します。
}

anuの回答とコメントは良いです。

また、cookieドメインがwp-config.phpファイルに正しく設定されていることを確認してください。


ユースケースを説明できますか?
チップベネット

回答:


10

はいといいえ!

ユーザーがマルチサイトシナリオで作業する方法は、ユーザーの単一のプールがあり、それらがブログに関連付けられるということです。

そのため、ログイン状態はすべてのブログで共通ですがis_blog_user($blog_id)現在のログインユーザーがそのブログのメンバーであるかどうかを判断するために使用できます。例:

if (is_user_logged_in()) {
  if (is_blog_user(4)) echo "Current user is a member of blog 4";
}

コーデックスページ is_blog_user()


少し違うことを心に抱きました。質問に追加しましたが、あなたの質問も非常に役立つと思います。
cwd '06 / 06/27

そのユーザーがメンバーであるブログに関係なく、回答はおそらく、ログインしたユーザーに対してtrueを返します。
anu

あなたが正しい。それは現在のブログでのみ機能します。しかし、私が何をしようとしていたのかわかりますか?ユーザーがログインしないブログがありますが、ネットワーク内の別のブログにログインしている場合は情報を表示したいと思います。何か案は?
cwd 2011年

あなたは要点を逃しています。ユーザーのログインステータスは「グローバル」です。つまり、ユーザーがログインすると、そのユーザーはデフォルトのロールとして「サブスクライバー」を使用してすべてのブログにログインします。
anu

4
小さなヒント。関数is_blog_user()は廃止され、このデータを取得するための新しい関数はis_user_member_of_blog( $user_id, $blog_id )です。
bueltge 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.