PHP-WordPress:如果(URL为example.com/sitemap)执行此操作…
作者:互联网
以前,我一直使用example.com?action=sitemap创建我的站点地图页面
这使我可以轻松地在索引页上测试站点地图请求,并…
$_REQUEST['action']
但是,我想改用example.com/sitemap创建指向站点地图的链接
而且我想知道如何解析“ / sitemap”外观的请求
解决方法:
您可以在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');
您只需要运行一次这些功能(例如,在安装主题时),因为重写规则存储在数据库中.
但是,您可能会发现使用此方法无法使用$_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’)检索action变量.
标签:query-string,wordpress,php 来源: https://codeday.me/bug/20191210/2100809.html