wppaste
WordPress

WP::handle_404()

Since
2.0.0
Source
wp-includes/class-wp.php:724
Set the Headers for 404, if nothing is found for requested URL.

Description

Issue a 404 if a request doesn't match any posts and doesn't match any object (e.g. an existing-but-empty category, tag, author) and a 404 was not already issued, and if the request was not a search or the homepage.

Otherwise, issue a 200.

This sets headers after posts have been queried. handle_404() really means "handle status".
By inspecting the result of querying posts, seemingly successful requests can be switched to a 404 so that canonical redirection logic can kick in.

Compatibility

WordPress
since 2.0.0
PHP
7.4–8.6-dev
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in every tracked release (6.7.7 to 7.1.0), and compiles on PHP 7.4 through 8.6-dev.

Performance profile

How much work a call to WP::handle_404() does, and what it touches: the algorithmic scaling, the Zend instruction count per call across PHP versions, the hooks it hands control to, and the core code that calls it. Measured from the compiled opcodes, not a stopwatch, so every number is identical on any machine running the same PHP version, and every function in core is ranked by cost.

Cost class
Trivial

Touches nothing outside its own arguments.

Scaling
Constant

No loop in the body: the same number of instructions runs whatever you pass in.

Instructions
9–75

Executed per call on PHP 8.5, depending on the branch taken. The body compiles to 120.

Plugin surface
1 hook

Third-party callbacks on 'pre_handle_404' run inside this call, and their cost is not bounded by anything here.

Called by
1

1 place in core call this, so the cost is paid more often than your own code shows.

What it touches

  • hookthird-party callbacksapply_filters()called directly

Further down the call graph this can also reach query, cache, serialize, option and transient. Those are the worst case, several calls deep and usually down an error path, not what a normal call pays.

What one call costs · 92 distinct outcomes

One number would be a lie: the work depends on which branch runs. These are every distinct cost WP::handle_404() can have, taken from its control-flow graph on PHP 8.5.

WhenInstructionsCalls it makes
always9apply_filters()
is_404()12apply_filters(), is_404()
!is_404() && is_admin()22apply_filters(), is_404(), is_admin(), status_header()
!is_404() && !is_admin() && is_robots()25apply_filters(), is_404(), is_admin(), is_robots(), status_header()
!is_404() && is_admin()26apply_filters(), is_404(), is_admin(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && is_favicon()28apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), status_header()
!is_404() && !is_admin() && is_robots()29apply_filters(), is_404(), is_admin(), is_robots(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && is_paged()31apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), status_header()
!is_404() && !is_admin() && !is_robots() && is_favicon()32apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && $wp_query35–53apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_singular(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && is_paged()35apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && $wp_query39–57apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_singular(), ->set_404(), status_header(), nocache_headers()
80 further outcomes, up to 75 instructions
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_tag() && get_queried_object()45–49apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), get_queried_object(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && is_user_member_of_blog()47apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_tag() && !get_queried_object() && is_home()48–52apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), get_queried_object(), is_home(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && is_category() && get_queried_object()48–52apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), get_queried_object(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_tag() && get_queried_object()49–53apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), get_queried_object(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && is_user_member_of_blog()51apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_tag() && !get_queried_object() && !is_home() && is_search()51–55apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), get_queried_object(), is_home(), is_search(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && is_category() && !get_queried_object() && is_home()51–55apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), get_queried_object(), is_home(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && is_tax() && get_queried_object()51–55apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), get_queried_object(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_tag() && !get_queried_object() && is_home()52–56apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), get_queried_object(), is_home(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && is_category() && get_queried_object()52–56apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), get_queried_object(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && is_tag() && get_queried_object()53apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), get_queried_object(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_tag() && !get_queried_object() && !is_home() && !is_search()53–58apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), get_queried_object(), is_home(), is_search(), is_feed(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && is_category() && !get_queried_object() && !is_home() && is_search()54–58apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), get_queried_object(), is_home(), is_search(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && is_tax() && !get_queried_object() && is_home()54–58apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), get_queried_object(), is_home(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && !is_post_type_archive() && is_home()54–58apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), is_home(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && get_queried_object()54–58apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_tag() && !get_queried_object() && !is_home() && is_search()55–59apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), get_queried_object(), is_home(), is_search(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && is_category() && !get_queried_object() && is_home()55–59apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), get_queried_object(), is_home(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && is_tax() && get_queried_object()55–59apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), get_queried_object(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && is_tag() && !get_queried_object() && is_home()56apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), get_queried_object(), is_home(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && is_category() && get_queried_object()56apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), get_queried_object(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && is_category() && !get_queried_object() && !is_home() && !is_search()56–61apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), get_queried_object(), is_home(), is_search(), is_feed(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && $wp_query && is_singular() && !empty($value)57–64apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_singular(), substr_count(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && is_tag() && get_queried_object()57apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), get_queried_object(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && is_tax() && !get_queried_object() && !is_home() && is_search()57–61apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), get_queried_object(), is_home(), is_search(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && !is_post_type_archive() && !is_home() && is_search()57–61apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), is_home(), is_search(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && !get_queried_object() && is_home()57–61apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), is_home(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_tag() && !get_queried_object() && !is_home() && !is_search()57–62apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), get_queried_object(), is_home(), is_search(), is_feed(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && is_category() && !get_queried_object() && !is_home() && is_search()58–62apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), get_queried_object(), is_home(), is_search(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && is_tax() && !get_queried_object() && is_home()58–62apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), get_queried_object(), is_home(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && !is_post_type_archive() && is_home()58–62apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), is_home(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && get_queried_object()58–62apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && is_tag() && !get_queried_object() && !is_home() && is_search()59apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), get_queried_object(), is_home(), is_search(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && is_category() && !get_queried_object() && is_home()59apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), get_queried_object(), is_home(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && is_tax() && get_queried_object()59apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), get_queried_object(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && is_tax() && !get_queried_object() && !is_home() && !is_search()59–64apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), get_queried_object(), is_home(), is_search(), is_feed(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && !is_post_type_archive() && !is_home() && !is_search()59–64apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), is_home(), is_search(), is_feed(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && is_tag() && !get_queried_object() && is_home()60apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), get_queried_object(), is_home(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && is_category() && get_queried_object()60apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), get_queried_object(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && !get_queried_object() && !is_home() && is_search()60–64apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), is_home(), is_search(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && is_category() && !get_queried_object() && !is_home() && !is_search()60–65apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), get_queried_object(), is_home(), is_search(), is_feed(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && $wp_query && is_singular() && !empty($value)61–68apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_singular(), substr_count(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && is_tag() && !get_queried_object() && !is_home() && !is_search()61–62apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), get_queried_object(), is_home(), is_search(), is_feed(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && is_tax() && !get_queried_object() && !is_home() && is_search()61–65apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), get_queried_object(), is_home(), is_search(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && !is_post_type_archive() && !is_home() && is_search()61–65apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), is_home(), is_search(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && !get_queried_object() && is_home()61–65apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), is_home(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && is_category() && !get_queried_object() && !is_home() && is_search()62apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), get_queried_object(), is_home(), is_search(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && is_tax() && !get_queried_object() && is_home()62apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), get_queried_object(), is_home(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && !is_post_type_archive() && is_home()62apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), is_home(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && get_queried_object()62apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && !get_queried_object() && !is_home() && !is_search()62–67apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), is_home(), is_search(), is_feed(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && is_tag() && !get_queried_object() && !is_home() && is_search()63apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), get_queried_object(), is_home(), is_search(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && is_category() && !get_queried_object() && is_home()63apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), get_queried_object(), is_home(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && is_tax() && get_queried_object()63apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), get_queried_object(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && is_tax() && !get_queried_object() && !is_home() && !is_search()63–68apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), get_queried_object(), is_home(), is_search(), is_feed(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && !is_post_type_archive() && !is_home() && !is_search()63–68apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), is_home(), is_search(), is_feed(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && is_category() && !get_queried_object() && !is_home() && !is_search()64–65apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), get_queried_object(), is_home(), is_search(), is_feed(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && !get_queried_object() && !is_home() && is_search()64–68apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), is_home(), is_search(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && is_tax() && !get_queried_object() && !is_home() && is_search()65apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), get_queried_object(), is_home(), is_search(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && !is_post_type_archive() && !is_home() && is_search()65apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), is_home(), is_search(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && !get_queried_object() && is_home()65apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), is_home(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && is_tag() && !get_queried_object() && !is_home() && !is_search()65–66apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), get_queried_object(), is_home(), is_search(), is_feed(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && is_category() && !get_queried_object() && !is_home() && is_search()66apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), get_queried_object(), is_home(), is_search(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && is_tax() && !get_queried_object() && is_home()66apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), get_queried_object(), is_home(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && !is_post_type_archive() && is_home()66apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), is_home(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && get_queried_object()66apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && !get_queried_object() && !is_home() && !is_search()66–71apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), is_home(), is_search(), is_feed(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && is_tax() && !get_queried_object() && !is_home() && !is_search()67–68apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), get_queried_object(), is_home(), is_search(), is_feed(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && !is_post_type_archive() && !is_home() && !is_search()67–68apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), is_home(), is_search(), is_feed(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && !get_queried_object() && !is_home() && is_search()68apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), is_home(), is_search(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && is_category() && !get_queried_object() && !is_home() && !is_search()68–69apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), get_queried_object(), is_home(), is_search(), is_feed(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && is_tax() && !get_queried_object() && !is_home() && is_search()69apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), get_queried_object(), is_home(), is_search(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && !is_post_type_archive() && !is_home() && is_search()69apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), is_home(), is_search(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && !get_queried_object() && is_home()69apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), is_home(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && !get_queried_object() && !is_home() && !is_search()70–71apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), is_home(), is_search(), is_feed(), status_header()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && is_tax() && !get_queried_object() && !is_home() && !is_search()71–72apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), get_queried_object(), is_home(), is_search(), is_feed(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && !is_post_type_archive() && !is_home() && !is_search()71–72apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), is_home(), is_search(), is_feed(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && !get_queried_object() && !is_home() && is_search()72apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), is_home(), is_search(), ->set_404(), status_header(), nocache_headers()
!is_404() && !is_admin() && !is_robots() && !is_favicon() && !$wp_query && !is_paged() && is_author() && $author && !is_user_member_of_blog() && !is_tag() && !is_category() && !is_tax() && is_post_type_archive() && !get_queried_object() && !is_home() && !is_search()74–75apply_filters(), is_404(), is_admin(), is_robots(), is_favicon(), is_paged(), get_query_var(), is_author(), is_user_member_of_blog(), is_tag(), is_category(), is_tax(), is_post_type_archive(), get_queried_object(), is_home(), is_search(), is_feed(), ->set_404(), status_header(), nocache_headers()

Across PHP versions

PHPCompiledExecutedBranchesNotes
8.6-dev1209–7528
8.51209–7528
8.41209–75289 fewer instructions than PHP 8.3
8.31299–7728
8.21299–7728
8.11299–77282 fewer instructions than PHP 7.4
7.41319–7728

An instruction is not a fixed amount of time, so a matching count is not necessarily the same speed; what it rules out is a difference in the work itself.

Hooks and filters fired · 1

One hook fires while WP::handle_404() runs, in this order:

  1. apply_filters( pre_handle_404 )filterline 738 (+14 into the body)

    Filters whether to short-circuit default header status handling.

Uses · 21

  • apply_filters()Calls the callback functions that have been added to a filter hook.
  • is_404()Determines whether the query has resulted in a 404 (returns no results).
  • is_admin()Determines whether the current request is for an administrative interface page.
  • is_robots()Is the query for the robots.txt file?
  • is_favicon()Is the query for the favicon.ico file?
  • is_singular()Determines whether the query is for an existing single post of any post type (post, attachment, page, custom post types).
  • str_contains()Polyfill for `str_contains()` function added in PHP 8.0.
  • is_paged()Determines whether the query is for a paged result and not for the first page.
  • get_query_var()Retrieves the value of a query variable in the WP_Query class.
  • is_author()Determines whether the query is for an existing author archive page.
  • is_user_member_of_blog()Finds out whether a user is a member of a given blog.
  • is_tag()Determines whether the query is for an existing tag archive page.
Show all 21

Used by · 1

  • WP::main()Sets up all of the variables required by the WordPress environment.

Source code

	public function handle_404() {		global $wp_query; 		/**		 * Filters whether to short-circuit default header status handling.		 *		 * Returning a non-false value from the filter will short-circuit the handling		 * and return early.		 *		 * @since 4.5.0		 *		 * @param bool     $preempt  Whether to short-circuit default header status handling. Default false.		 * @param WP_Query $wp_query WordPress Query object.		 */		if ( false !== apply_filters( 'pre_handle_404', false, $wp_query ) ) {			return;		} 		// If we've already issued a 404, bail.		if ( is_404() ) {			return;		} 		$set_404 = true; 		// Never 404 for the admin, robots, or favicon.		if ( is_admin() || is_robots() || is_favicon() ) {			$set_404 = false; 			// If posts were found, check for paged content.		} elseif ( $wp_query->posts ) {			$content_found = true; 			if ( is_singular() ) {				$post = $wp_query->post ?? null;				$next = '<!--nextpage-->'; 				// Check for paged content that exceeds the max number of pages.				if ( $post && ! empty( $this->query_vars['page'] ) ) {					// Check if content is actually intended to be paged.					if ( str_contains( $post->post_content, $next ) ) {						$page          = trim( $this->query_vars['page'], '/' );						$content_found = (int) $page <= ( substr_count( $post->post_content, $next ) + 1 );					} else {						$content_found = false;					}				}			} 			// The posts page does not support the <!--nextpage--> pagination.			if ( $wp_query->is_posts_page && ! empty( $this->query_vars['page'] ) ) {				$content_found = false;			} 			if ( $content_found ) {				$set_404 = false;			} 			// We will 404 for paged queries, as no posts were found.		} elseif ( ! is_paged() ) {			$author = get_query_var( 'author' ); 			// Don't 404 for authors without posts as long as they matched an author on this site.			if ( is_author() && is_numeric( $author ) && $author > 0 && is_user_member_of_blog( $author )				// Don't 404 for these queries if they matched an object.				|| ( is_tag() || is_category() || is_tax() || is_post_type_archive() ) && get_queried_object()				// Don't 404 for these queries either.				|| is_home() || is_search() || is_feed()			) {				$set_404 = false;			}		} 		if ( $set_404 ) {			// Guess it's time to 404.			$wp_query->set_404();			status_header( 404 );			nocache_headers();		} else {			status_header( 200 );

Changelog

Introduced in 2.0.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 7.1.0 tag, from src/wp-includes/class-wp.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.