Wordpress自定义Querystrings&Pretty URL's - 如何?

Rou*_*der 3 php wordpress .htaccess rewrite query-string

对于一个新网站,我有一个非常好的(迄今为止)wordpress的设置.漂亮的网址按预期工作.

我有一个动态页面,根据查询字符串加载内容:

/dynamic/?loc=england&code=uk 
Run Code Online (Sandbox Code Playgroud)

我希望这个URL"漂亮",但每次我修改.htaccess都没有做出任何更改.尝试了一切,谷歌搜索其他一切 - 最后的手段.如果我能得到以下工作,那么我会很高兴.

我需要让URL看起来像.

/dynamic/location/england/code/uk/
Run Code Online (Sandbox Code Playgroud)

将此添加到任何.htaccess会破坏整个网站.

RewriteRule /dynamic/(.*)/(.*)/(.*)/(.*)/$ /dynamic?$1=$2&$3=$4
Run Code Online (Sandbox Code Playgroud)

我错过了什么.

提前致谢

ñ

EAM*_*ann 11

不要将重写规则添加到您的.htaccess文件中.WordPress为您管理该文件,因此尽可能使用内置功能.

WordPress实际上有一个标准的高级重写引擎 - 它可以像平台的其他部分一样可插拔.

但是,诀窍是与它合作.您需要注册RegEx,以便WordPress知道要匹配的字符串类型(即dynamic/location/(.*)/code/(.*)=> /dynamic?$loc=$1&code=$2).然后,您需要在后端设置页面和脚本来处理提交.

对于类似的示例,请查看我收到的解答,以解析WordPress Answers上自定义帖子类型的自定义URL .扩展这个,您需要设置类似于以下的代码(注意:未经测试!!!):

<?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
}
Run Code Online (Sandbox Code Playgroud)

应该.htaccess自动将重写结构添加到您的文件中.