我想了解两种自定义内容类型是否可以共享一种自定义分类法。在drupal中,我可以将特定内容类型的发布限制为一组用户,然后该发布可以具有仅与一个或多个其他内容类型(但并非所有类型)共享的分类法。
不使用角色范围器可以显示用户方面的内容,您可以使用wordpress吗?我只见过具有自定义分类法的自定义内容类型,但是无法在两个或多个自定义内容类型之间共享给定分类法,而无需在两个地方重新创建它或通过类别/标签在全局范围内启用它...
感谢,
-乍得。
#1 楼
在CPT之间共享分类法我想知道两种自定义内容类型是否可以共享一种自定义分类法。
简单地说:是的,他们可以。
如何共享
您应该始终注册自定义分类法,并尽早相互发布类型。
结束注册在函数中进行处理,并以默认优先级连接到
init
钩子。register_taxonomy(
'some_custom_tax',
'some_post_type',
$array_of_arguments
);
register_post_type(
'some_post_type',
[
'taxonomies' => [ 'some_custom_tax' ],
// other arguments
]
);
无论对
register_taxonomy()
使用第二个参数还是对register_taxonomy_for_object_type()
使用都无关紧要,因为两者都相同:它们采用$GLOBALS['wp_taxonomies']
数组并为其分配post类型对象(类型)。重要说明
请确保您注册了CT和注册时彼此之间的CPT。否则在查询挂钩期间您将无法访问该互连。
#2 楼
通过传递要共享分类法的所有Custom帖子类型的数组,我能够轻松实现此目标,因此我的代码如下所示: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 ) );
}
评论
这应该是IMO接受的答案。简明扼要。
– FaCE
19年6月21日在11:33
#3 楼
来自法典:分类法
(数组)(可选)将与该帖子类型一起使用的已注册分类法的数组,例如category或post_tag。可用于代替直接调用
register_taxonomy_for_object_type()
。自定义分类法仍然需要使用register_taxonomy()
进行注册。注册帖子类型时,请分配其支持的分类法,或者在其他时候使用
register_taxonomy_for_object_type()
将分类法添加到帖子类型中。您可以根据需要将分类法分配给尽可能多的帖子类型。分类法与特定职位类型无关。
评论
我发现的一个问题是,一旦在其他地方使用了共享CT,管理员将无法正确显示CPT的帖子数。
– Meetai.com
2014年3月6日在7:23
我不确定是否要遵循。该问题询问有关将CT注册到多个CPT的问题。这个答案似乎描绘了两种方式将CPT和CT相互注册。
–巴西那个家伙
19年1月16日在3:03
@ThatBrazilianGuy是的,答案是。由于多种原因。请详细阅读答案。
– kaiser
20-4-20在22:04