自定义分类的固定链接问题

时间:2013-09-17 作者:Eric Holmes

我这里有一个(希望很简单)问题。

内置职位类型:类别

我有一个自定义的帖子类型:Rights,它有一个自定义的类别分类法(Rights Category)。

我的问题是使用重写slugrights/category 首先被通用category 重写规则。所以我现在一直在使用rights-category, 或rights/categories (至少要优雅一点)。

是否有任何方法(除了更改类别基础)可以从本质上说“将我的自定义重写规则优先于内置规则”?上次我查看类别的注册时,我认为不可能在内置分类法之前注册自己的分类法(优先级为0),因此将自己的重写规则放在WP Core之前。

Note: 我正在mu插件中定义自定义分类法和post类型。我还尝试使用优先级0和1,它们似乎没有任何影响。不过,我还是希望得到一些验证。

1 个回复
SO网友:cybmeta

我认为,在注册自定义分类法时定义自定义重写段塞时,仍然需要添加自定义重写规则。

add_action(\'init\',\'my_add_rewrite_rules\');
function my_add_rewrite_rules() {
    add_rewrite_rule( \'rights/category/(.+)/page/([0-9]{1,})/?$\', \'index.php?post_type=rights&category=$matches[1]&paged=$matches[2]\', \'top\' );
    add_rewrite_rule( \'rights/category/(.+)/?$\' , \'index.php?post_type=rights&category=$matches[1]\' , \'top\' );
}
为了添加正确的重写规则,我需要自定义帖子类型和自定义分类注册的代码。另外,不要忘记通过访问WP admin area->settings->permalinks刷新重写规则。

我可以通过自己的测试确认@G.M.是正确的(见问题的第一条评论)。如果您使用单数名称注册您的cptright 并设置has_archive 对plurgal slug的论证rights, 海关rewrite 中的参数register_taxonomy 您使用的将在没有任何自定义重写规则的情况下工作。因此,您可以注册cptregister_post_type(\'right\', $args) 哪里$args[\'has_archive\'] = \'rights\'. 但现在您将拥有:

域。com/rights/>用于存档视图域。com/right/a-custom-post/>用于单个自定义帖子视图。com/rights/taxonomy-slug/term-slug/>术语归档视图因此,我仍然更喜欢用复数slug注册cutom post类型,并添加重写规则,以便具有更一致的永久链接结构(所有URL都将包含“rights”slug):

域。com/rights/>用于存档视图域。com/rights/a-custom-post/>用于单个自定义帖子视图。com/rights/taxonomy-slug/term-slug/>术语存档视图

结束

相关推荐