带有标记的URL的Wordpress重写规则

时间:2016-03-31 19:41:18

标签: php wordpress .htaccess mod-rewrite url-rewriting

在WordPress中,我有以下几页:

false

12345 是表示阵型ID的动态值,实际上是一个查询字符串。我添加了一个重写规则:

Formation: http://mysite.dev/formation/12345
Messages: http://mysite.dev/formation/12345/messages
Report: http://mysite.dev/formation/12345/report

当我访问页面http://mysite.dev/formation/12345时,这可以正常工作,我可以使用function formation_add_rewrite() { add_rewrite_tag( '%frm_id%', '([^&]+)' ); add_rewrite_rule( 'formation/([^&]+)/?', 'index.php?pagename=formation&frm_id=$matches[1]', 'top' ); } add_action( 'init', __NAMESPACE__ . '\\formation_add_rewrite' ); 检索查询var propery,但它不适用于URL中包含id后面的内容。

这只是我的重写规则有问题,还是根本无法工作?

谢谢!

1 个答案:

答案 0 :(得分:1)

你只需要学习一下php正则表达式。这将是一个可行的工作(我还没有测试过它)

  add_rewrite_rule( '^formation/([0-9]*)/([a-z]*)', 'index.php?pagename=formation&frm_id=$matches[1]&SOMETHING=$matches[2]', 'top' );

注意我已将第二个条件与SOMETHING=$matches[2]

相匹配

基本上,运营商在这里有所不同:

  • ^意味着完全匹配

  • ([0-9]*) =匹配条件,匹配任意长度的数字

  • ([a-z]*) =匹配条件,匹配任意长度的单词