portfolio
的自定义帖子类型,我正在尝试向其添加标签分类法,该怎么做?#1 楼
像这样:(在上面写着“ portfolio”的地方就是您将分类法注册到帖子类型的地方评论
@JoeBobby可能值得检查WordPress Codex页面以注册分类法,以更好地了解所有可用选项:codex.wordpress.org/Function_Reference/register_taxonomy
– Stephen S.
14年5月8日在16:41
请注意,这将创建一个全新的分类法,称为“标签”,而不是将现有的“ post_tag”分类法添加到自定义帖子类型中。
–杰克
17年6月28日在17:53
@chifliiiii如何在带有标签链接的单个页面中获取这些标签,如何为标签页面创建模板
–Dinesh
18年6月25日在9:05
我同意杰克的观点,我觉得这不能解决问题。 @Marcus的答案应该是标记为已接受的答案。
–克雷格·韦恩(Craig Wayne)
18年7月12日在21:20
#2 楼
或仅添加:'taxonomies' => array('post_tag')
已注册分类法数组,例如
category
或post_tag
,将与该帖子类型一起使用。可用于代替直接调用register_taxonomy_for_object_type()
。自定义分类法仍然需要在register_taxonomy()
中进行注册。 到
$args
-文件中的functions.php
数组,您可以在其中使用register_post_type()
创建自定义帖子类型。评论
请在回答中添加一个解释:为什么可以解决问题?
– fuxia♦
13年7月12日在3:54
#3 楼
使用此:add_action( 'init', 'gp_register_taxonomy_for_object_type' );
function gp_register_taxonomy_for_object_type() {
register_taxonomy_for_object_type( 'post_tag', 'portfolio' );
};
#4 楼
方法1(来自以上答案:https://wordpress.stackexchange.com/a/106211/38771)不同的帖子类型将使用默认“帖子”类型的相同“标签”数据。
优点
一切(应)开箱即用,只需一行即可
将所有标签合而为一放置在CMS中
缺点
忘记一个结构良好/易于使用的CMS-自定义标签帖子类型页面将显示计数错误的所有标签(而不仅仅是自定义帖子类型文章中使用的标签)...
更改标签将影响默认的“帖子”文章以及自定义帖子类型文章(删除这两种类型的文章都将其删除)
(可能是不可能的)设置任何独特的Tag功能:不同的描述,自定义字段,图像等(至少在核心之上没有太多自定义编码) Wordpress代码)...
方法2(来自以上答案:https://wordpress.stac kexchange.com/a/62263/38771)
不同的帖子类型使用不同的“标签”配置/数据。
优点
创建不同/明显不同的标记相关功能:前端模板,功能,查询过滤器,操作)
分配不同的标记相关数据:字段数据或甚至自定义字段
在CMS中更好地管理标签
示例:编辑/删除“ post”标签不会影响(类似命名/ slugged)标记以用于其他帖子类型/>
实际上,它们是一种以各种方式对各种项目进行分组的极其有效的方法。 https://codex.wordpress.org/Taxonomies#Custom_Taxonomies
评论
方法1的情况如下:一个大型体育网站,其中包含带有标签的大量主题/联赛/运动,例如“ NBA”,“ NHL”,“篮球”,“奥运会”,“ Steroids”,“ College”等,重复和管理可能是+100标记和4种帖子类型(默认设置)没有任何意义帖子类型和3种自定义帖子类型)。至于缺点,如果标签计数数据是如此特殊,则可以为此创建自定义视图。至于每种帖子类型的类似自定义标签,到目前为止似乎还没有任何明显的需求(努力考虑一个……需要的例子)。
– MarsAndBack
19年1月12日,0:23
是的,但是对于不同的帖子类型,不会自动存在不同的标签永久链接。对于所有帖子类型,标签“季后赛”将具有“ / tag /季后赛”。然后,您必须设置重写规则或使用GET参数创建不同的永久链接...对于每种帖子类型,使用不同的分类法,每种帖子类型的每个“季后赛”标签都将具有自己的永久链接,可以使用Wordpress的模板进行自定义层次结构。如果NBA和NHL的不同“季后赛”页面不同,那很好。...
–P-S
19年1月14日在13:53
我明白你在说什么。因此,如果每个CPT使用不同的标签分类法,那么在添加或编辑一个税项中的一项时,如何使其变为其他税项,即跨税项同步的唯一项,该如何改变呢?例如定义“篮球”一次,例如在“后标签”税中说,然后单击“保存”,然后“篮球”也将在CPT的其他税中唯一创建。因此,一次输入/编辑标签,更改就会在多个标签税中反映出来。最后,您可以在一个目标中进行标签管理,以及更理想的永久链接情况。
– MarsAndBack
19年1月15日,1:15
是的,如果站点为多个CPT共享相同的基本分类法信息(标题),并为不同的CPT进一步定制这些分类法(自定义字段,图像等),则该方法实际上是一种很好的方法。真好!
–P-S
19年1月18日在11:44
#5 楼
只需使用此代码可能会对您有所帮助 add_action( 'init', 'create_client_tax' );
function create_client_tax() {
register_taxonomy(
'client_tag', //your tags taxonomy
'client', // Your post type
array(
'hierarchical' => false,
'label' => __( 'Tags', CURRENT_THEME ),
'singular_name' => __( 'Tag', CURRENT_THEME ),
'rewrite' => true,
'query_var' => true
)
);
}
评论
已接受答案的已剥离版本。同样,这也增加了一个全新的分类法,而不是使用现有的“ post_tag”分类法。
–acidrums4
18年7月11日在17:36
#6 楼
这总是可以正常工作。#7 楼
尽管Marcus的答案解决了大多数问题,但请注意,这并不是一个完整的解决方案。 chifliiiii的答案较为完整,但如评论中所述,它并未重用已存在的标签分类法。因此,这就是为什么我认为chifliiiii的答案不正确。我将在下面解释原因。完整的解决方案
通过使用Marcus或Giovanni建议的方法将自定义帖子类型注册到
post_tag
分类法中,将不会显示自定义标签的帖子标签存档页面上的帖子类型。它仅显示post
帖子类型的帖子,因为内置标签模板是通过查询呈现的,而该查询仅针对post
帖子类型。要解决此问题,您需要使用pre_get_posts
钩子更改查询。这是解决此问题的一种通用方法(不要问我为什么在内核中未实现): />
评论
@chifliiiii,如果我这样做,则类别和标记与用于帖子的相同。如何获得新帖子类型专有的类别和标签?@chifliiiii如在模板中显示标签?