From 4315a8867dc1d11b5d6b708e114dd19920059f97 Mon Sep 17 00:00:00 2001 From: "Dominik Schilling (ocean90)" Date: Tue, 23 Feb 2016 16:07:39 +0000 Subject: [PATCH] In `WP::handle_404()` introduce a filter `pre_handle_404` to short-circuit default header status handling. This comes handy if you use WordPress without posts, means `$wp_query` contains no results. Props prettyboymp, hakre, prettyboymp, Denis-de-Bernardy, ethitter, ocean90. Fixes #10722. git-svn-id: https://develop.svn.wordpress.org/trunk@36629 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/class-wp.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/wp-includes/class-wp.php b/src/wp-includes/class-wp.php index 238e2e6660..74ea29fe6f 100644 --- a/src/wp-includes/class-wp.php +++ b/src/wp-includes/class-wp.php @@ -629,6 +629,21 @@ class WP { public function handle_404() { global $wp_query; + /** + * Filter 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;