您可以通过重写规则来实现这一点,只需在运行主查询之前退出执行即可。
首先,添加将由重写规则设置的查询变量:
function wpd_query_vars( $query_vars ){
$query_vars[] = \'my_var\';
return $query_vars;
}
add_filter( \'query_vars\', \'wpd_query_vars\' );
接下来,重写规则:
function wpd_rewrite_rule(){
add_rewrite_rule(
\'^my-url/?$\',
\'index.php?my_var=true\',
\'top\'
);
}
add_action( \'init\', \'wpd_rewrite_rule\' );
最后,我们钩住
parse_request
并检查自定义var,运行代码,然后退出:
function wpd_parse_request( &$wp ){
if ( array_key_exists( \'my_var\', $wp->query_vars ) ){
echo \'do something\';
exit;
}
return;
}
add_action( \'parse_request\', \'wpd_parse_request\' );