我试图在我的网址开头添加一个查询变量。比如在语言管理模块通常做的url中添加语言代码。
例如我想要这个网址:
显示这一个:
并将城市视为变量和纽约,因为它在流动的功能中具有价值:
get_query_var('city_name');
我实际上希望wordpress忽略城市/纽约,并按照以前的方式工作。
我在我的function.php中尝试了这段代码,但它的工作不正确:
add_action('init', function() {
add_rewrite_rule( '^cities/([a-z]+)/?',
'index.php?city_name=$matches[1]',
'top' );
}, 10, 0);
add_filter( 'query_vars', 'wpse26388_query_vars' );
function wpse26388_query_vars( $query_vars ){
$query_vars[] = 'city_name';
return $query_vars;
}
答案 0 :(得分:0)
重写规则的技巧是当它们被修改时(如果你添加,修改或删除它们),你需要告诉WordPress刷新并重建列表。为此,您可以访问管理区域中的“永久链接选项”页面,也可以使用函数flush_rewrite_rules()
// Add the rewrite rule and flush on plugin activation
add_action('init', function() {
add_rewrite_rule( '^cities/([a-z]+)/?', 'index.php?city_name=$matches[1]', 'top' );
flush_rewrite_rules();
}, 10, 0);