如何在不访问固定链接页面的情况下创建新的内容类型和刷新重写规则?

时间:2017-09-18 作者:danilocgsilva

我找不到一种切实可行的方法来创建新的内容类型并允许永久链接结构工作。在WordPress中,每个地方都有人想让permalink结构工作到一种新的内容类型,我读到用户需要访问设置>Permalinks管理页面。

许多参考文献也提到了flush_rewrite_rules() “刷新重写规则”。但直到现在,这些都不起作用,我仍然需要访问permalinks页面。

请看我在新的内容类型插件中尝试的以下代码。为了解决这个问题,我立刻把我读到的所有东西放在一起。尝试刷新插件注册和加载重写规则对象,并显式调用可能重写规则的函数。什么都没用。

register_activation_hook( __FILE__, \'my_new_content_type_flushes\' );

function my_new_content_type_flushes() {
    flush_rewrite_rules();
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
    $wp_rewrite->init();
}
也许我可以在另一个钩子中使用一些刷新功能,比如在创建新内容类型的新内容时。但如果是这样的话,我可能会遇到一些效率低下的问题。刷新重写规则将运行一个循环遍历我所有内容的代码,对吗?如果我有数千个内容,那么即使对于那些已经可以使用permalink结构的内容,比如帖子内容,这样做也是没有意义的。

那么,我如何才能添加一个新的内容类型,并让它的永久链接结构在不进入永久链接页面的情况下工作呢?

1 个回复
SO网友:Jan Boddez

确保在刷新之前注册新的帖子类型!因此,调用注册它们的函数init, 但也在激活/刷新功能中。

请参见此处的第一个示例:https://codex.wordpress.org/Function_Reference/flush_rewrite_rules.

结束

相关推荐

Change Taxonomy Permalinks

我有自定义帖子,我创建了一个显示所有自定义帖子的页面。示例:www.example.com/archive-page我想知道是否可以更改与此自定义帖子相关的类别和标签的永久链接。现在我有:www.example.com/my-custom-post-type-cats/my-category-1www.example.com/my-custom-post-type-tags/my-tag-1</我想要这样的东西:www.example.com/archive-page?category=1www.e