我想添加一个简单的自定义Wordpress重写规则,但不知怎的,我没有得到这个工作。
此网址
http://www.gewerbesteuer.de/steuer/muenchen 应该叫这个
http://www.gewerbesteuer.de/index.php?pagename=gewerbesteuerhebesaetze&loc=muenchen
所以我想打一个页面,显示某个城市的税率,该城市应该作为最后一部分的网址。
这是我的代码:
function custom_rewrite_tag() {
global $wp_rewrite;
add_rewrite_tag('%loc%', '([^&]+)');
add_rewrite_rule('steuer/([^/]+)',
'index.php?pagename=gewerbesteuerhebesaetze&loc=$matches[1]', 'top');
flush_rewrite_rules();
}
function query_vars($query_vars ) {
$query_vars[] = 'loc';
return $query_vars;
}
add_action('init', 'custom_rewrite_tag');
add_filter( 'query_vars', 'query_vars' );
重写规则正在运行,但未获取参数(在本例中为loc)。即使我用某个城市(例如
)对重写规则进行硬编码add_rewrite_rule('steuer/([^/]+)',
'index.php?pagename=gewerbesteuerhebesaetze&loc=muenchen', 'top');
它仍然不会获取loc参数的值。我还注意到$ matches数组是空的,不包含任何值。 我查看了wordpress上的所有文档和这里的问题,但找不到问题。有什么想法吗?
由于
哈德
答案 0 :(得分:0)
你可以尝试添加它,看看这有什么不同吗?
<强>被修改强>
我更改了#34; pagename
&#34;重写规则中的参数。到&#34; page_id
&#34; - 我假设2207
正如你在网站页面上看到的身体类所说的那样。
我还从flush_rewrite_rules()
功能中删除了custom_rewrite_rules_tags
,您现在可以尝试这一点,然后转到选项&gt;永久链接并重新保存。
function custom_rewrite_rules_tags() {
global $wp_rewrite;
add_rewrite_tag('%loc%', '([^&]+)');
add_rewrite_rule(
'steuer/([^/]+)',
'index.php?page_id=2207&loc=$matches[1]',
'top'
);
}
add_action('init', 'custom_rewrite_rules_tags');
function custom_query_vars($query_vars ) {
$query_vars[] = 'loc';
return $query_vars;
}
add_filter( 'query_vars', 'custom_query_vars' );