是否在注册后更改自定义帖子类型的属性?

时间:2014-02-26 作者:numbers1311407

具体的用例是,我通过插件添加了一个CPT,我希望它是分层的,但post类型选项是硬编码到插件中的。

在通过添加自定义帖子类型后,是否可以更改其属性register_post_type?

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

虽然注册后可以操作CPT数据,但它不是很“干净”,而且有些东西更难操作。

专门针对分层设置,注册会立即将其添加到重写中:

if ( $args->hierarchical )
    add_rewrite_tag( "%$post_type%", \'(.+?)\', $args->query_var ? "{$args->query_var}=" : "post_type=$post_type&pagename=" );
else
    add_rewrite_tag( "%$post_type%", \'([^/]+)\', $args->query_var ? "{$args->query_var}=" : "post_type=$post_type&name=" );
因此,您必须非常小心地重做此操作,并确保它能够正确刷新重写规则。

总之,研究分叉或扩展插件的这一部分,并按照需要注册CPT,会更加健壮。

结束

相关推荐