【发布时间】:2014-06-12 05:14:55
【问题描述】:
我很想在现有的 Wordpress 重写块中添加一个重写规则。我有一个特殊的页面,它需要动态参数但对 SEO 友好的 url。
所以
http://unitedathletes.ch/athleten/var_sportart/var_name
应该变成
http://unitedathletes.ch/athleten/?sportart=var_sportart&name=var_name
而
http://unitedathletes.ch/athleten/
是一个现有页面,其中包含处理查询参数的必要逻辑。
现有的 wordpress htaccess 重写块如下所示:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
在该块中的什么位置以及如何添加希望的规则?我尝试了很多东西,但自己无法弄清楚。
更新 1
尝试 add_rewrite_rule(),无法正常工作:在 functions.php 中:
add_action( 'init', 'add_rewrite' );
function add_rewrite(){
add_rewrite_rule('^athleten/([^/]*)/([^/]*)/?','index.php?page_id=340&sportart=$matches[1]&athlet=$matches[2]','top');
add_rewrite_tag('%sportart%','([^&]+)');
add_rewrite_tag('%athlet%','([^&]+)');
}
更新 2
只需要刷新重写规则。感谢大家的帮助。
flush_rewrite_rules();
【问题讨论】:
-
domain.com/members/?sporttype=sporttype&name=name_familyname是 WP 帖子/页面吗? -
你为什么不使用 add_rewrite_rule()? codex.wordpress.org/Rewrite_API/add_rewrite_rule
-
只是一个简短的说明 - 你不应该 flush_rewrite_rules () o
-
谢谢戴夫。根本没有或没有定期?
标签: wordpress .htaccess rewrite