描述
按以下顺序插入不存在的term(分类法项目):
- 该term被添加到term数据表,然后关联到taxonomy(分类法)
- 如果一切正常,则会触发几个动作
- ‘term_id_filter’求值
- 清理term缓存
- 还有几个动作被触发
- 返回一个数组包含
term_id
和term_taxonomy_id
如果“slug”参数不为空,则会检查该term是否无效。如果它不是有效的现有的term,则添加该term并给出term_id。
如果分类法是分层的,并且“parent”参数不为空,则插入term并给出term_id。
错误处理:如果$taxonomy
不存在或$term
为空,将返回一个WP_Error对象。
如果term已经存在于同一分层级别上,或者它的slug和name不唯一,则将返回WP_Error对象。
参数
- $term
-
(string) (必填) 要添加的term名称。
- $taxonomy
-
(string) (必填) 要添加term的分类法(taxonomy)。
- $args
-
(array|string) (可选) 用于插入term的参数数组或查询字符串。
- 'alias_of'
(string) term slug,作为该term的别名,默认空字符串,接受term slug - 'description'
(string) term的描述,默认空字符串 - 'parent'
(int) 父term的ID,默认 0 - 'slug'
(string) 要使用的term slug,默认空字符串
默认值: array()
- 'alias_of'
返回
(array|WP_Error) 新term数据的数组,否则WP_Error。
- 'term_id'
(int) 新term ID. - 'term_taxonomy_id'
(int|string) 新term的taxonomy ID,可以是一个数字字符串
源码
更新日志
版本 | 描述 |
---|---|
2.3.0 | 开始引入 |
使用示例
注意自定义分类的无效分类错误。此错误表示您在
register_taxonomy
之前调用wp_insert_term
。仔细检查你的动作钩子。示例
$parent_term = term_exists( 'fruits', 'product' ); // array is returned if taxonomy is given $parent_term_id = $parent_term['term_id']; // get numeric term id wp_insert_term( 'Apple', // the term 'product', // the taxonomy array( 'description' => 'A yummy apple.', 'slug' => 'apple', 'parent' => $parent_term_id, ) );
返回示例
term已存在错误对象:
WP_Error Object ( [errors] => Array ( [term_exists] => Array ( [0] => A term with the name provided already exists in this taxonomy. ) ) [error_data] => Array ( [term_exists] => 1221 ) [additional_data:protected] => Array ( ) )
新term数据数组:
Array ( [term_id] => 1254 [term_taxonomy_id] => 1254 )