มี is_user_logged_in () สำหรับเว็บไซต์หลายไซต์หรือไม่


11

มีฟังก์ชั่น is_user_logged_in () สำหรับ Wordpress MU / Multisite (3.0+) ที่ฉันสามารถเพิ่มในรหัสไซต์เครือข่ายเหมือนis_user_logged_in(2)ที่2จะเป็น site_id หรือไม่

ปรับปรุง:

หลังจากขุดขึ้นมาเล็กน้อยฉันก็พบโค้ดด้านล่าง น่าเสียดายที่มันไม่ทำงาน

// อย่าใช้สิ่งนี้ ไม่ทำงาน, ไม่เป็นผล.
ฟังก์ชั่น mu_logged_in ($ blog_id) {
    switch_to_blog ($ blog_id);
        $ status = is_user_logged_in ();
    restore_current_blog ();
    ส่งคืนสถานะ $;
}

คำตอบและความคิดเห็นของ anu นั้นดี

ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าโดเมนคุกกี้อย่างถูกต้องในไฟล์ 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";
}

หน้า Codex สำหรับ is_blog_user()


ฉันมีสิ่งที่แตกต่างกันเล็กน้อยในใจ ฉันเพิ่มไปยังคำถาม แต่ฉันคิดว่าคุณมีประโยชน์มากเช่นกัน
cwd

คำตอบของคุณอาจกลับมาจริงสำหรับผู้ใช้ที่เข้าสู่ระบบไม่ว่าบล็อกใดที่ผู้ใช้เป็นสมาชิก
Anu

คุณถูก. ยังใช้งานได้กับบล็อกปัจจุบันเท่านั้น แต่คุณเห็นสิ่งที่ฉันพยายามที่จะได้รับที่? ฉันมีบล็อกที่ผู้ใช้จะไม่ถูกลงชื่อเข้าใช้ แต่ฉันต้องการแสดงข้อมูลหากพวกเขาลงชื่อเข้าใช้บล็อกอื่นในเครือข่าย ความคิดใด ๆ
cwd

คุณไม่มีจุด สถานะการเข้าสู่ระบบของผู้ใช้คือ 'ทั่วโลก' - คือเมื่อผู้ใช้เข้าสู่ระบบแล้วผู้ใช้นั้นจะเข้าสู่บล็อกทั้งหมดที่มี 'สมาชิก' เป็นบทบาทเริ่มต้น
Anu

4
คำใบ้เล็ก ๆ ฟังก์ชั่นจะเลิกและฟังก์ชั่นใหม่ที่จะได้รับข้อมูลนี้อยู่is_blog_user() is_user_member_of_blog( $user_id, $blog_id )
bueltge
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.