多个自定义帖子类型可以共享一个自定义分类吗?

时间:2013-03-26 作者:Chad Dupuis

我正在考虑在wordpress中重建一个drupal站点,但仍在思考系统之间的差异,尤其是cck/字段和自定义内容类型以及使用分类法的不同方式。

我想知道两个自定义内容类型是否可以共享一个自定义分类法。在drupal中,我可以将特定内容类型的发布限制为一组用户,然后发布可以具有仅与一个或多个其他内容类型(但不是所有类型)共享的分类。

如果不使用角色scoper可能出现的用户方面,您可以使用wordpress执行此操作吗?我只见过使用自定义分类法的自定义内容类型,但如果不在两个位置重新创建或通过类别/标记全局启用,就无法在两个或多个自定义内容类型之间共享给定的分类法。。。

谢谢-查德。

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

在CPT之间共享分类法我想知道两个自定义内容类型是否可以共享一个自定义分类法。

Simple说:Yes, they can.

如何共享您应该always register 自定义分类法和帖子类型to each other 越早越好。

将注册过程封装在一个函数中,并连接到init 以默认优先级挂起。

<?php
/** Plugin Name: Register $CPT and $CT */
add_action(\'init\', function() {
    register_taxonomy(
        \'some_custom_tax\',
        \'some_post_type\',
        $array_of_arguments
    );
    register_post_type(
        \'some_post_type\',
        [
            \'taxonomies\' => [ \'some_custom_tax\' ],
            // other arguments
        ]
    );
}, 10 ); # <-- default priority
如果使用2nd参数register_taxonomy() 或者如果您使用register_taxonomy_for_object_type(), 因为两者都是这样做的:他们$GLOBALS[\'wp_taxonomies\'] 数组,并为其指定post类型对象(类型)。

重要提示

注册CT和CPT时,请确保在处相互注册CT和CPT。否则,在查询挂钩期间,您将无法访问该互连。

SO网友:Kevin Ochieng

我可以通过传递我想要共享分类法的所有自定义帖子类型的数组轻松实现这一点,因此我的代码如下所示:

add_action( \'init\', \'build_taxonomies\', 0 );
 function build_taxonomies() {
    register_taxonomy( \'some_custom_tax\', array(\'some_post_type_1\',\'some_post_type_2\'), array( \'hierarchical\' => true, \'label\' => \'Custom Tax Title\', \'query_var\' => true, \'rewrite\' => true ) );   
}

SO网友:s_ha_dum

From the Codex:

分类法

(数组)(可选)将与此帖子类型一起使用的已注册分类法数组,如category或post\\u标记。这可以用来代替呼叫register_taxonomy_for_object_type() 直接地自定义分类法仍需要向注册register_taxonomy().

注册帖子类型时,可以指定其支持的分类法,或使用register_taxonomy_for_object_type() 在另一点上,将分类添加到post类型。

您可以为任意多个帖子类型分配分类法。分类法与特定的帖子类型无关。

结束

相关推荐