Вы можете создать новое правило переписывания в Wordpress примерно так:
function sitemap_rewrite($wp_rewrite) {
$rules = array('sitemap' => 'index.php?action=sitemap');
$wp_rewrite->rules = $rules + $wp_rewrite->rules;
return $wp_rewrite;
}
add_action('generate_rewrite_rules', 'sitemap_rewrite');
function flush_rewrite_rules() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_filter('init', 'flush_rewrite_rules');
Вам нужно будет запускать эти функции только один раз (например, когда ваша тема установлена), потому что правила перезаписи хранятся в базе данных.
Однако вы, вероятно, обнаружите, что, используя этот метод, вы не можете получить доступ к переменной action
, используя $_REQUEST['action']
. Чтобы получить доступ к вашей переменной, вам нужно добавить ее в массив Wordpress 'query_vars
, примерно так:
function add_action_query_var($vars) {
array_push($vars, 'action');
return $vars;
}
add_filter('query_vars', 'add_action_query_var');
Затем вы можете получить переменную действия, используя get_query_var('action')
.