在 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。
具体实例
最简单的方法就是:
add_filter( 'do_parse_request', '__return_false' );
但是一般来说,要判断一下是否含有进入自定义页面的参数,有才返回 false:
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 的自定义页面路由的处理,下一版我也将通过该方法来时来改进优化,进一步提高效率。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。