如何在URL中添加自定义变量而无需重定向?

时间:2016-07-26 作者:Stanislau Ladutska

我正在尝试向URL添加一个局部变量。

例如,我有以下URL:

mysite.com/my-page-name/
我想在其中添加“en”变量,让页面正常工作:

mysite.com/en/my-page-name/ 
我试着用add_rewrite_tag()add_rewrite_rule() 但它不起作用,那么我做错了什么?

add_rewrite_tag(\'%locale%\', \'^([a-z]{2})\');
add_rewrite_rule(\'^([a-z]{2})/(.+)[/$]\', \'index.php?pagename=$matches[2]\', \'top\');

2 个回复
最合适的回答,由SO网友:Stanislau Ladutska 整理而成

这只是重写规则中regexp中的一个错误。这个很好用!

add_rewrite_rule(\'^([a-z]{2})\\/(.+)(\\/)?$\', \'index.php?page=&pagename=$matches[2]&locale=$matches[1]\', \'top\');

SO网友:daniyalahmad

实现这一目标有多种方法。最简单的方法可能是创建一个新页面,并将其命名为“en”,这样slug将mysite.com/en/

现在将“en”页面作为我的页面名称的父级,或者换句话说,将我的页面名称作为en的子级。所以slug会mysite.com/en/my-page-name/

相关推荐

Altered Media Library URLs

我有一个客户的网站,是在他们离开另一家代理机构后我找到的。该机构使用了一个专有主题和自己的自托管页面生成器,以防止其在除他们之外的任何其他托管环境中更新或编辑。它的另一个方面是重新映射主题的URL并上载目录。因此,例如,代替WP在中查找主题文件http://domain.com/wp-content/themes/…. 它在里面找他们http://domain.com/t/….同样,对于图像上载,也可以在http://domain.com/wp-content/uploads/…, 它在里面找他们http