在WP 4.2之前,具有相同s in(例如,标签和分享s lug“”a a a a a a a a in in in in in in。。。。。。。。)))))。。。。 从WordPress 4.2开始,当这些共享术语中的一个更新时,它将被拆分:更新的术语将被分配一个新的术语ID。
在绝大多数情况下,这种更新将是无缝和平静的。 然而,一些插件和主题在选项,后期元数据,用户元数据或其他地方存储术语ID。 WP 4.2将包括两种不同的工具来帮助这些插件和主题的作者过渡。
##'split_shared_term'动作
当共享术语被分配一个新的术语ID时,会触发一个新的“split_shared_term”操作。 存储术语ID的插件和主题应挂接到此操作以执行必要的迁移。 挂钩的文档如下:
以下是插件和主题作者如何利用此操作确保存储的术语ID更新的几个示例。
##更新存储在选项中的术语ID
假设你的插件存储一个名为“featured_tags”的选项,它包含一个术语ID数组(update_option('featured_tags',array(4,6,10)))。 在这个例子中,你将钩住'split_shared_term',检查更新后的术语ID是否在数组中,如有必要,进行更新。
##更新存储在后期元中的术语ID
有时一个插件可能会在post meta中存储术语ids。 在这种情况下,使用get_posts()查询来定位具有元键“primary_category”的帖子以及与分割术语ID匹配的元值。 确定帖子后,请使用update_post_meta()更改存储在数据库中的值。
wp_get_split_term()
函数
'split_shared_term'是处理术语ID更改的首选方法。 但是,可能有些情况 - 例如延迟插件更新 - 哪些术语被拆分,没有插件有机会钩住'split_shared_term'动作。 WP 4.2存储有关已分裂的分类术语的信息,并提供wp_get_split_term()实用程序函数,以帮助开发人员检索此信息。
考虑上面的情况,您的插件在名为“featured_tags”的选项中存储术语ID。 您可能需要构建一个验证这些标记ID的功能(可能要在插件更新中运行),以确保没有任何功能标签已被拆分:
请注意,wp_get_split_term()具有两个参数 - $ old_term_id和$ taxonomy - 并返回一个整数。 如果您需要检索与旧术语ID相关联的所有拆分术语的列表,无论分类如何,请使用wp_get_split_terms($ old_term_id)。