当前浏览:首页 / WordPress函数 / wp_insert_term()

wp_insert_term( string $term, string $taxonomy, array|string $args = array() )

向数据库插入新的term

insert

term 分类项more...


描述

按以下顺序插入不存在的term(分类法项目):

  1. 该term被添加到term数据表,然后关联到taxonomy(分类法)
  2. 如果一切正常,则会触发几个动作
  3. ‘term_id_filter’求值
  4. 清理term缓存
  5. 还有几个动作被触发
  6. 返回一个数组包含term_idterm_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()


返回

(array|WP_Error) 新term数据的数组,否则WP_Error

  • 'term_id'
    (int) 新term ID.
  • 'term_taxonomy_id'
    (int|string) 新term的taxonomy ID,可以是一个数字字符串


源码

查看源码 官方文档


更新日志

版本描述
2.3.0开始引入

使用示例

  • 示例1

    注意自定义分类的无效分类错误。此错误表示您在register_taxonomy之前调用wp_insert_term。仔细检查你的动作钩子。

  • 示例2

    示例

    $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,
    	)
    );
    
    
  • 示例3

    返回示例

    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
    )