我不确定这是否可行,但以下是我正在努力实现的目标。我正在使用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上的附件页问题。
最合适的回答,由SO网友:Dominic P 整理而成
好的,这里的解决方案是在add_action
钩因为我们都在init
要按照Codex注册我们的帖子类型,优先级将决定register_post_type
首先调用函数,并扩展为调用生成的重写规则的顺序。
因此,我需要在“产品”重写规则之前检查我的“宝石”重写规则,因此如果它们匹配,甚至不会检查产品规则。为了实现这一点,我不得不对priority参数使用负值,这有点恼人,因为WooCommerce对其register post类型操作使用的优先级为0,但这是一个小问题。
我仍然不知道如何最好地使附件页工作(上面的奖金问题),但这可能最好留给WooCommerce的核心团队。