Make WordPress Core

Opened 4 years ago

Closed 3 years ago

#18387 closed defect (bug) (fixed)

get_blog_id_from_url() has wrong return

Reported by: lonnylot Owned by:
Milestone: 3.5 Priority: normal
Severity: minor Version: 3.0
Component: Multisite Keywords: has-patch
Focuses: Cc:


If the blog does not exist we sometimes return 0 and sometimes return false. Per the comment we should always be returning an int.

Attachments (3)

wrong_return.diff (368 bytes) - added by lonnylot 4 years ago.
18387.diff (4.8 KB) - added by ryan 3 years ago.
Down the rabbit hole
18387-ut.diff (3.0 KB) - added by ryan 3 years ago.
Unit tests

Download all attachments as: .zip

Change History (10)

#1 @scribu
4 years ago

  • Severity changed from normal to minor

#2 @nacin
4 years ago

  • Version set to 3.0

#3 @wonderboymusic
3 years ago

  • Milestone changed from Awaiting Review to 3.5

#4 @ryan
3 years ago

This function needs a lot of help. It's cache is never invalidated and escaped data is used to create cache keys. We need to do something like we did for #20950.

Version 0, edited 3 years ago by ryan (next)

#5 @ryan
3 years ago

No to mention it is pretty much the same as domain_exists() and get_id_from_blogname().

3 years ago

Down the rabbit hole

#6 @ryan
3 years ago

  • Register blog-id-cache group as global
  • Introduce clean_blog_cache() so we can run it independently of refresh_blog_details() which assumes the blog still exists and get_blog_details() can be called.
  • Don't db escape cache keys
  • Return 0 for all failures in get_blog_id_from_url()
  • clean_blog_cache() after dropping tables in wpmu_delete_blog() to make sure the cache is for real cleaned.

3 years ago

Unit tests

#7 @ryan
3 years ago

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.