Php Wordpress自定义查询字符串&;漂亮的URL';如何?
我有一个非常好的(到目前为止)设置的wordpress的一个新网站。漂亮的URL按预期工作 我有一个动态页面,根据查询字符串加载内容:Php Wordpress自定义查询字符串&;漂亮的URL';如何?,php,wordpress,.htaccess,query-string,rewrite,Php,Wordpress,.htaccess,Query String,Rewrite,我有一个非常好的(到目前为止)设置的wordpress的一个新网站。漂亮的URL按预期工作 我有一个动态页面,根据查询字符串加载内容: /dynamic/?loc=england&code=uk 我也想让这个URL变得“漂亮”,但每次我修改.htaccess时,都没有做任何更改。尝试了一切,谷歌搜索了一切——最后的手段。如果我能做到以下几点,我会很高兴的 我需要使URL看起来像 /dynamic/location/england/code/uk/ 将此添加到任何.htaccess会
/dynamic/?loc=england&code=uk
我也想让这个URL变得“漂亮”,但每次我修改.htaccess时,都没有做任何更改。尝试了一切,谷歌搜索了一切——最后的手段。如果我能做到以下几点,我会很高兴的
我需要使URL看起来像
/dynamic/location/england/code/uk/
将此添加到任何.htaccess会破坏整个网站
RewriteRule /dynamic/(.*)/(.*)/(.*)/(.*)/$ /dynamic?$1=$2&$3=$4
我错过了什么
提前谢谢
N不要将重写规则添加到
.htaccess
文件中。WordPress为您管理该文件,因此尽可能使用内置功能
WordPress实际上有一个比较先进的标准配置,它和平台的其他部分一样是可插拔的
不过,诀窍在于利用它。您需要注册您的正则表达式,以便WordPress知道要匹配哪些类型的字符串(即dynamic/location/(.*)/code/(.*)
=>/dynamic?$loc=$1&code=$2
)。然后需要在后端设置页面和脚本来处理提交
对于一个类似的例子,请看我收到的关于使用自定义post类型解析自定义URL的答案。要扩展此功能,您需要设置与以下类似的代码(注意:未测试!!!):
您是否尝试访问过/dynamic/location/england/code/uk/
,或者只是在不漂亮的页面上刷新?另外,如果您想稍后分析加载的重写规则,我强烈推荐。回答不错,把这个问题扩大一点:有一种方法可以将:提前转换为感谢。我在让这些重写规则发挥作用时遇到了很多麻烦。您的正则表达式的([^/]+)
格式适合我。谢谢
<?php
add_action('init', 'add_my_rewrite');
function add_my_rewrite() {
global $wp_rewrite;
$wp_rewrite->add_rule('location/([^/]+)/code/([^/]+)','index.php?loc=$matches[1]&code=$matches[2]','top');
$wp_rewrite->flush_rules(false); // This should really be done in a plugin activation
}