diff --git a/wp-admin/admin-functions.php b/wp-admin/admin-functions.php index 3f89cef18..03e54eee4 100644 --- a/wp-admin/admin-functions.php +++ b/wp-admin/admin-functions.php @@ -262,15 +262,13 @@ function wp_insert_category($catarr) { $result = $wpdb->query($query); if ( $update ) { - $rval = $wpdb->rows_affected; do_action('edit_category', $cat_ID); } else { - $rval = $wpdb->insert_id; do_action('create_category', $rval); do_action('add_category', $rval); } - return $rval; + return $cat_ID; } function wp_update_category($catarr) { @@ -317,6 +315,19 @@ function wp_delete_category($cat_ID) { return 1; } +function wp_create_category($cat_name) { + $cat_array = compact('cat_name'); + return wp_insert_category($cat_array); +} + +function category_exists($cat_name) { + global $wpdb; + if ( !$category_nicename = sanitize_title($cat_name) ) + return 0; + + return $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = '$category_nicename'"); +} + function wp_delete_user($id, $reassign = 'novalue') { global $wpdb; diff --git a/wp-admin/edit-form-ajax-cat.php b/wp-admin/edit-form-ajax-cat.php index 7ff8a8d47..917f506ad 100644 --- a/wp-admin/edit-form-ajax-cat.php +++ b/wp-admin/edit-form-ajax-cat.php @@ -7,27 +7,18 @@ get_currentuserinfo(); if ( !current_user_can('manage_categories') ) die('-1'); -function grab_id() { - global $new_cat_id; - $new_cat_id = func_get_arg(0); -} - function get_out_now() { exit; } - -add_action('edit_category', 'grab_id'); -add_action('create_category', 'grab_id'); add_action('shutdown', 'get_out_now', -1); $cat_name = rawurldecode($_GET['ajaxnewcat']); if ( !$category_nicename = sanitize_title($cat_name) ) die('0'); -if ( $already = $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = '$category_nicename'") ) +if ( $already = category_exists($cat_name) ) die((string) $already); $cat_name = $wpdb->escape($cat_name); -$cat_array = compact('cat_name', 'category_nicename'); -wp_insert_category($cat_array); +$new_cat_id = wp_create_category($cat_name); die((string) $new_cat_id); ?>