wp_insert_category

Definition:
function wp_insert_category($catarr, $wp_error = false) {}

Updates an existing Category or creates a new Category.

Parameters

  • mixed $catarr: See defaults below. Set ‘cat_ID’ to a non-zero value to update an existing category. The ‘taxonomy’ key was added in 3.0.0.
  • bool $wp_error: Optional, since 2.5.0. Set this to true if the caller handles WP_Error return values.

Return values

returns:ID number of the new or updated Category on success. Zero or a WP_Error on failure, depending on param $wp_error.

Source code

function wp_insert_category($catarr, $wp_error = false) {

	$cat_defaults = array('cat_ID' => 0, 'taxonomy' => 'category', 'cat_name' => '', 'category_description' => '', 'category_nicename' => '', 'category_parent' => '');

	$catarr = wp_parse_args($catarr, $cat_defaults);

	extract($catarr, EXTR_SKIP);



	if ( trim( $cat_name ) == '' ) {

		if ( ! $wp_error )

			return 0;

		else

			return new WP_Error( 'cat_name', __('You did not enter a category name.') );

	}



	$cat_ID = (int) $cat_ID;



	// Are we updating or creating?

	if ( !empty ($cat_ID) )

		$update = true;

	else

		$update = false;



	$name = $cat_name;

	$description = $category_description;

	$slug = $category_nicename;

	$parent = $category_parent;



	$parent = (int) $parent;

	if ( $parent < 0 )

		$parent = 0;



	if ( empty($parent) || !category_exists( $parent ) || ($cat_ID && cat_is_ancestor_of($cat_ID, $parent) ) )

		$parent = 0;



	$args = compact('name', 'slug', 'parent', 'description');



	if ( $update )

		$cat_ID = wp_update_term($cat_ID, $taxonomy, $args);

	else

		$cat_ID = wp_insert_term($cat_name, $taxonomy, $args);



	if ( is_wp_error($cat_ID) ) {

		if ( $wp_error )

			return $cat_ID;

		else

			return 0;

	}



	return $cat_ID['term_id'];

}

3787

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: