为多个内容类型使用相同的基本区块重写规则

时间:2012-06-12 作者:Dominic P

我不确定这是否可行,但以下是我正在努力实现的目标。我正在使用WooCommerce, 我有它的设置来为我的产品permalinks预先准备一个基本slug和产品类别。因此,我的产品permalinks如下所示:

example.com/shop/%product_category%/%product_slug%

现在,我想创建另一个名为“gemstone”的帖子类型,它使用shop 永久链接中的基本页,因此它们看起来如下所示:

example.com/shop/gemstone/%gemstone_slug%

问题是,所有的宝石404页。这是因为他们的URL被重写,所以“gemstone”被假定为%product_category% 以及%gemstone_slug% 假设为%product_slug%. 我很难想出解决这个问题的方法,但URL重写对我来说是一个全新的东西。有人有什么想法吗?

另外,产品permalinks的另一个问题是其附件页(例如。example.com/shop/%product_category%/%product_slug%/%attachment%) 也都是404。作为参考,我已经打开了bug ticket 对于WooCommerce github上的附件页问题。

1 个回复
最合适的回答,由SO网友:Dominic P 整理而成

好的,这里的解决方案是在add_action 钩因为我们都在init 要按照Codex注册我们的帖子类型,优先级将决定register_post_type 首先调用函数,并扩展为调用生成的重写规则的顺序。

因此,我需要在“产品”重写规则之前检查我的“宝石”重写规则,因此如果它们匹配,甚至不会检查产品规则。为了实现这一点,我不得不对priority参数使用负值,这有点恼人,因为WooCommerce对其register post类型操作使用的优先级为0,但这是一个小问题。

我仍然不知道如何最好地使附件页工作(上面的奖金问题),但这可能最好留给WooCommerce的核心团队。

结束

相关推荐

Permalinks and page store

我把这个贴在stackoverflow上,他们说我可以在这里试试-我的网站上安装了wordpress。在那个网站的一个子文件夹下,我安装了oscommerce系统作为在线商务商店。我在wordpress上激活了permalinks,但现在每次我试图联系商店管理部门时,我都会得到wordpress中找不到的页面。如果我禁用永久链接,我可以再次访问,你能帮我吗?谢谢你,丹尼