我认为你最早可以采取的行动是muplugins_loaded
和plugins_loaded
. muplugins_loaded
只会为Must Use Plugins.
一些plugins_loaded
伪代码:
add_action( \'plugins_loaded\', \'wpd_plugin_routes\' );
function wpd_plugin_routes() {
if( is_a_virtual_file() ){
serve_file();
exit;
}
}
如果您想要完整的WordPress环境、插件、主题和经过身份验证的用户,就在WordPress解析请求之前,您已经获得了
do_parse_request
过滤器:
add_filter( \'do_parse_request\', \'wpd_do_parse_request\', 1, 3 );
function wpd_do_parse_request( $continue, WP $wp, $extra_query_vars ){
// do something and halt execution, or
return $continue; // true by default, meaning continue parsing the request
}
如果您想在WordPress解析请求后获得以上所有内容,那么
parse_request
行动您可以在此处更改主查询变量:
add_action( \'parse_request\', \'wpd_parse_request_thing\' );
function wpd_parse_request_thing( $query ) {
if( isset( $query->query_vars[\'pagename\'] ) ){
if( \'some-page\' == $query->query_vars[\'pagename\'] ){
$query->query_vars[\'pagename\'] = \'some-other-page\';
}
}
}
加载模板之前的最后一个操作是
template_redirect
. 这里所有的
is_
条件工作:
add_action( \'template_redirect\', \'wpd_page_template_redirect\' );
function wpd_page_template_redirect() {
if( is_404() ) {
// do something
die;
}
}