我读过这篇文章
http://wordpress.org/support/topic/query-vars-in-admin
虽然这是一个很老的问题,但它非常适合我。我正在努力完成我在这里发布的内容:
Rewrite rule for admin-ajax.php
但在下面的代码中,在wp admin中只调用第一个过滤器:
add_action(\'init\', array(\'MYCLASS\', \'add_custom_rewrite_rules\'), 10, 1);
add_action(\'query_vars\', array(\'MYCLASS\', \'add_custom_query_vars\'), 10, 1);
add_action(\'parse_request\', array(\'MYCLASS\', \'add_custom_parse_request\'), 10, 1);
我不能让它工作。在wp admin中导航时,似乎没有调用最后两个过滤器。这是真的吗?我怎么才能避开这个?
SO网友:Milo
我认为这正是你想要实现的。关于multisite 404,您必须flush rewrite rules 在多站点中希望添加此规则的每个站点上。测试目的的一种快速方法是访问要测试的每个站点的permalinks设置页面。另请注意,我删除了.php
规则的扩展。我想你会有奇怪的行为-REQUEST
奇怪的是,将是一个空数组。
function wpd_api_rule(){
add_rewrite_rule( \'my-api/?$\', \'index.php?my-api=1\', \'top\' );
}
add_action( \'init\', \'wpd_api_rule\' );
function wpd_query_vars( $query_vars ){
$query_vars[] = \'my-api\';
return $query_vars;
}
add_filter( \'query_vars\', \'wpd_query_vars\' );
function wpd_parse_request( $wp ){
if( array_key_exists( \'my-api\', $wp->query_vars ) ) {
// AJAX API example -
// you might want to whitelist actions here
// use wp_ajax_nopriv_ if not logged in
do_action( \'wp_ajax_\' . $_REQUEST[\'action\'] );
die(0);
}
}
add_action( \'parse_request\', \'wpd_parse_request\' );