我正在做一个项目,涉及过滤前端的一些海关帖子。我设法创建了包含自定义字段的永久链接,但似乎重写规则匹配了一些不需要的页面,使它们无法在前端显示。
我用于重写的代码:
$wp_rewrite->add_rewrite_tag(\'%competition%\', \'([^/]+)\', \'competition=\');
$wp_rewrite->add_rewrite_tag(\'%prize_category%\', \'([^/]+)\', \'prize_category=\');
$wp_rewrite->add_permastruct(\'competition\', \'/au/%prize_category%/%competition%/\', false);
问题如下。它执行此url应执行的操作:
http://example.com/au/win-a-holiday/win-a-long-weekend-at-the-rees-hotel-queenstown/
但它也符合这一点:
http://example.com/au/win-a-holiday/
我是否可以强制第二个参数
%competition%
未来
mandatory? 因此,该规则仅适用于以下URL:
http://example.com/au/param1/param2
不适用于domain.com/au/param1/
?
谢谢,乔治
最合适的回答,由SO网友:Samantha 整理而成
我整个上午都在努力解决这个问题,在寻找答案时发现了你的问题。我相信现在对你来说有点晚了,但如果其他人偶然发现这个问题,我找到了一个解决方案:
更改:
$wp_rewrite->add_permastruct(\'competition\', \'/au/%prize_category%/%competition%/\', false);
收件人:
$wp_rewrite->add_permastruct( \'competition\', \'/au/%prize_category%/%competition%/\', array( \'walk_dirs\' => false ) );
walk_dirs
重写组成URL结构的“目录”,默认设置为true。将其设置为false可确保重写仅用于指定的完整URL。