Site icon Hip-Hop Website Design and Development

How can I trust switch_to_blog()?

When I call switch_to_blog() with a blog id, I don’t know whether that blog actually exists. The function returns always TRUE.

Test case:

switch_to_blog( PHP_INT_MAX );
$post = get_post( 1 );
restore_current_blog();

This will result in database errors which are exposed to the user. How can I prevent that?

Real world use case

I was the lead developer of Multilingual Press. When a user translates a post, she gets a screen like this:

Now the following can happen:

  1. She saves the post successfully and continues translating the post.
  2. Another user, a network admin, deletes the German blog while she is writing.
  3. She hits save again and gets database errors.

I want to avoid that scenario. How can I check quickly if the target blog exists? I call switch_to_blog() very often in multiple different classes, so it has to be fast.