这个很棘手。
function my_plugin_query_vars($vars) {
// add mypluginname to the valid list of variables
$new_vars = array(\'mypluginname\');
$vars = $new_vars + $vars;
return $vars;
}
add_filter(\'query_vars\', \'my_plugin_query_vars\');
这将告诉WordPress接受名为mypluginname的GET变量。现在您可以处理如下请求
http://www.example.com?mypluginname=param1
我们在parse\\u请求上添加了一个操作,这使我们在WordPress之前第一次更改对给定请求的解析。
function my_plugin_parse_request($wp) {
// only process requests with "mypluginname=param1"
if (array_key_exists(\'mypluginname\', $wp->query_vars)
&& $wp->query_vars[\'mypluginname\'] == \'param1\') {
my_plugin_custom_function($wp);
}
}
add_action(\'parse_request\', \'my_plugin_parse_request\');
然后我们需要在WordPress重写系统中添加一个钩子,然后创建一个规则,告诉WordPress将所有请求转发到
http://example.com/mypluginname/param1
到
http://www.example.com?mypluginname=param1
使用此代码
add_action(\'generate_rewrite_rules\', \'my_plugin_rewrite_rules\');
function my_plugin_rewrite_rules( $wp_rewrite ) {
$new_rules = array(\'mypluginname/param1\' => \'index.php?mypluginname=param1\');
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
这应该会让你继续:)所以我希望这会有所帮助。