编程语言
首页 > 编程语言> > PHP-WordPress:如果(URL为example.com/sitemap)执行此操作…

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