You can create a new rewrite rule in Wordpress like this:
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');
You only need to run these functions once (when your theme is installed, for example), because rewriting rules are stored in the database.
, , , 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').