From 9e6fbb0061838ac9401188861d6f44c8ba51eaa4 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Mon, 30 Jan 2012 18:19:27 +0000 Subject: [PATCH] Check the return of wp_insert_term() for WP_Error or array. Prevents fatal erros and failure to add categories when adding terms via ajax. Props mdawaffe. fixes #17938 #17939 git-svn-id: https://develop.svn.wordpress.org/trunk@19792 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/includes/ajax-actions.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/wp-admin/includes/ajax-actions.php b/wp-admin/includes/ajax-actions.php index a823cfa217..921f923b01 100644 --- a/wp-admin/includes/ajax-actions.php +++ b/wp-admin/includes/ajax-actions.php @@ -234,10 +234,12 @@ function _wp_ajax_add_hierarchical_term( $action ) { $category_nicename = sanitize_title($cat_name); if ( '' === $category_nicename ) continue; - if ( !($cat_id = term_exists($cat_name, $taxonomy->name, $parent)) ) { - $new_term = wp_insert_term($cat_name, $taxonomy->name, array('parent' => $parent)); - $cat_id = $new_term['term_id']; - } + if ( !$cat_id = term_exists( $cat_name, $taxonomy->name, $parent ) ) + $cat_id = wp_insert_term( $cat_name, $taxonomy->name, array( 'parent' => $parent ) ); + if ( is_wp_error( $cat_id ) ) + continue; + else if ( is_array( $cat_id ) ) + $cat_id = $cat_id['term_id']; $checked_categories[] = $cat_id; if ( $parent ) // Do these all at once in a second continue; @@ -488,10 +490,12 @@ function wp_ajax_add_link_category( $action ) { $slug = sanitize_title($cat_name); if ( '' === $slug ) continue; - if ( !$cat_id = term_exists( $cat_name, 'link_category' ) ) { + if ( !$cat_id = term_exists( $cat_name, 'link_category' ) ) $cat_id = wp_insert_term( $cat_name, 'link_category' ); - } - $cat_id = $cat_id['term_id']; + if ( is_wp_error( $cat_id ) ) + continue; + else if ( is_array( $cat_id ) ) + $cat_id = $cat_id['term_id']; $cat_name = esc_html(stripslashes($cat_name)); $x->add( array( 'what' => 'link-category',