WordPress 6.0 改进了 do_parse_request 过滤器,可以实现跳过没有必要的文章请求

2023-04-13 11:03:54 浏览数 (1)

在 WordPress 6.0 之前的版本,插件和主题开发者可以通过 do_parse_request filter 来更改请求实现在非常早的时候就渲染自定义页面。

但是该方法一直存在一个问题,就是 WordPress 主循环的文章查询和 404 查找还是会继续运行,这样就导致了在这些自定义页面渲染的时候依旧运行一些没有必要的 SQL 查询。

6.0 的改进

WordPress 6.0 为 WP 类的 parse_request 方法添加了一个返回值,默认是返回 true,但是可以通过 do_parse_request filter 将其修改为 false,这样就可以跳过上面提到的不必要的文章查询和 404 查找。

WordPress 官方建议,如果使用 do_parse_request 实现自定义页面,建议将它的返回值设置为 false。

具体实例

最简单的方法就是:

代码语言:javascript复制
add_filter( 'do_parse_request', '__return_false' );

但是一般来说,要判断一下是否含有进入自定义页面的参数,有才返回 false:

代码语言:javascript复制
add_filter( 'do_parse_request', function( $do_parse, $wp, $extra_query_vars ){
    if ( 'CUSTOM_VALUE' === $extra_query_vars['custom_arg'] ) {
        return false;
    }
 
    return $do_parse;
}, 10, 3 );

WPJAM Basic 的自定义页面路由的处理,下一版我也将通过该方法来时来改进优化,进一步提高效率。

0 人点赞