WordPress添加_permastruct不需要的匹配

时间:2013-02-27 作者:Bdesign

我正在做一个项目,涉及过滤前端的一些海关帖子。我设法创建了包含自定义字段的永久链接,但似乎重写规则匹配了一些不需要的页面,使它们无法在前端显示。

我用于重写的代码:

$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/ ?

谢谢,乔治

1 个回复
最合适的回答,由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。

结束

相关推荐

Update page breaks permalinks

从3.3.1开始,我有一个奇怪的副作用。当更新页面(或创建新页面)时,我的所有永久链接都会中断-单击相关更新页面上的查看页面将导致404找不到。这不会发生在帖子中。我担心我的permalinks/%postname%/新模式可能会出现问题,但我将其替换为YEAR/postname,没有发现任何差异。我检查并发现帖子名称字段中有一些重复,我更改或删除了任何可疑的重复。仍然没有变化。这是我的htaccess-# BEGIN WordPress <IfModule mod_rewrite.c>