Skip to content

Docs: Explain that switch_to_blog() does not switch registered post types - #14888

Open
bluefairydevelopment wants to merge 2 commits into
WordPress:trunkfrom
bluefairydevelopment:docs/63768-any-post-type-switch-to-blog
Open

bluefairydevelopment wants to merge 2 commits into
WordPress:trunkfrom
bluefairydevelopment:docs/63768-any-post-type-switch-to-blog

Conversation

@bluefairydevelopment

@bluefairydevelopment bluefairydevelopment commented Oct 26, 2026 •

Copy link
Copy Markdown

Documentation only. After switch_to_blog(), registered post types and taxonomies still reflect the site handling the request, so WP_Query with 'post_type' => 'any' builds its post_type IN (...) list from the original site. As noted in comment 3 on the ticket, the root cause is the same as #20541 (closed invalid), so this documents the behaviour rather than changing WP_Query.

  • switch_to_blog() docblock: post types, taxonomies and other registries do not switch, which affects get_post_types(), post_type_exists(), taxonomy_exists() and WP_Query with 'any' or a tax_query.

No code changes. php -l and phpcs are clean for ms-blogs.php.

Trac ticket: https://core.trac.wordpress.org/ticket/63768

Use of AI Tools

AI assistance: Yes
Tool(s): Claude Code
Model(s): Claude Opus 5.5
Used for: reading the ticket and the code, and drafting the documentation wording. Submitted by Blue Fairy Development, who are responsible for the change.


This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.

…ypes.

Document on WP_Query's post_type argument that 'any' uses the post types
registered on the original site after switch_to_blog(), and on
switch_to_blog() that post types and taxonomies do not switch.

See #63768.
@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs.

Core Committers: Use this line as a base for the props when committing in SVN:

Props bluefairydevelopment, peterwilsoncc.

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.


Props Bot commands

You can trigger Props Bot actions by commenting on this PR:

  • @propsbot add <username> to give props to a GitHub user. Requires write access.
  • @propsbot remove <username> to leave a user out of the props. Requires write access.
  • @propsbot refresh to refresh this list. Adding the props-bot label works too.

@github-actions

Copy link
Copy Markdown

Test using WordPress Playground

The changes in this pull request can previewed and tested using a WordPress Playground instance.

WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser.

Some things to be aware of

  • All changes will be lost when closing a tab with a Playground instance.
  • All changes will be lost when refreshing the page.
  • A fresh instance is created each time the link below is clicked.
  • Every time this pull request is updated, a new ZIP file containing all changes is created. If changes are not reflected in the Playground instance,
    it's possible that the most recent build failed, or has not completed. Check the list of workflow runs to be sure.

For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation.

Test this pull request with WordPress Playground.

Comment thread src/wp-includes/class-wp-query.php Resolved
Per review, the note on registered post types and taxonomies belongs with
switch_to_blog(), which causes the effect, rather than WP_Query.
@bluefairydevelopment

Copy link
Copy Markdown
Author

Thanks @peterwilsoncc, that makes sense. I've removed the WP_Query docblock change, so the note now lives only in switch_to_blog().

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants