diff options
Diffstat (limited to 'wp-admin/admin-db.php')
| -rw-r--r-- | wp-admin/admin-db.php | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/wp-admin/admin-db.php b/wp-admin/admin-db.php index de90ad7..24e2388 100644 --- a/wp-admin/admin-db.php +++ b/wp-admin/admin-db.php @@ -125,6 +125,11 @@ function wp_insert_category($catarr) { else $links_private = 0; + + // Let's check if we have this category already, if so just do an update + if ( !$update && $cat_ID = category_object_exists( $category_nicename ) ) + $update = true; + if (!$update) { $maxcat = $wpdb->get_var( "SELECT max(cat_ID) FROM {$wpdb->categories}" ); $cat_ID = mt_rand( $maxcat+100, $maxcat+4000 ); @@ -153,6 +158,11 @@ function wp_insert_category($catarr) { clean_category_cache($cat_ID); + if ($update) + do_action('edited_category', $cat_ID); + else + do_action('created_category', $cat_ID); + return $cat_ID; } @@ -245,6 +255,14 @@ function wp_create_categories($categories, $post_id = '') { return $cat_ids; } +function category_object_exists($cat_name) { + global $wpdb; + if (!$category_nicename = sanitize_title($cat_name)) + return 0; + + return (int) $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = '$category_nicename'"); +} + function category_exists($cat_name) { global $wpdb; if (!$category_nicename = sanitize_title($cat_name)) @@ -419,6 +437,8 @@ function wp_delete_link($link_id) { $wpdb->query("DELETE FROM $wpdb->link2cat WHERE link_id = '$link_id'"); return $wpdb->query("DELETE FROM $wpdb->links WHERE link_id = '$link_id'"); + + do_action('deleted_link', $link_id); } function wp_get_link_cats($link_ID = 0) { |
