WordPress.org

Make WordPress Core

Opened 4 years ago

Closed 2 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:

Description

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 2 years ago.
Down the rabbit hole
18387-ut.diff (3.0 KB) - added by ryan 2 years ago.
Unit tests

Download all attachments as: .zip

Change History (10)

@lonnylot4 years ago

comment:1 @scribu4 years ago

  • Severity changed from normal to minor

comment:2 @nacin3 years ago

  • Version set to 3.0

comment:3 @wonderboymusic2 years ago

  • Milestone changed from Awaiting Review to 3.5

comment:4 @ryan2 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 2 years ago by ryan (next)

comment:5 @ryan2 years ago

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

@ryan2 years ago

Down the rabbit hole

comment:6 @ryan2 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.

@ryan2 years ago

Unit tests

comment:7 @ryan2 years ago

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