Make WordPress Core

Opened 7 years ago

Last modified 7 years ago

#19160 closed defect (bug)

is_user_member_of_blog() gives unexpected results on single site — at Version 1

Reported by: duck_ Owned by:
Milestone: 3.3 Priority: normal
Severity: normal Version: 3.1
Component: Users Keywords: has-patch
Focuses: Cc:

Description (last modified by duck_)

On single site with a logged in user:

var_dump( is_user_member_of_blog() ); // bool(false)

This is because when passed an empty $blog_id the function uses $wpdb->blogid as the current blog which is 0 in single site, but the blog ID set by get_blogs_of_user() is get_current_blog_id().

Two possible solutions:

  1. Use get_current_blog_id()
  2. Return result of is_user_logged_in() if ! is_multisite() Only works for the current user

Attached patch for 1.

is_blog_user() was included for single site in 3.1, see [15671], and didn't work as expected then either. It also caused a PHP notice as well as returning false.

Also see #16702, especially comment 21. Noticed whilst writing patches for #19122.

Change History (2)

7 years ago

#1 @duck_
7 years ago

  • Description modified (diff)

Scratch out 2. as I wasn't thinking about passing a $user_id.

Note: See TracTickets for help on using tickets.