Changeset 5271
- Timestamp:
- 04/15/2007 02:26:26 AM (18 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/admin-db.php
r5184 r5271 95 95 else 96 96 $update = false; 97 97 error_log("Type for $cat_ID is $type", 0); 98 98 $cat_name = apply_filters('pre_category_name', $cat_name); 99 99 … … 126 126 127 127 // Let's check if we have this category already, if so just do an update 128 if ( $cat_ID = category_exists( $category_nicename ) ) {128 if ( !$update && $cat_ID = category_object_exists( $category_nicename ) ) 129 129 $update = true; 130 $category = get_category($cat_ID);131 // If inserting a category that already exists, OR in the new type rather132 // than replacing the entire value.133 $type = $category->type | $type;134 }135 130 136 131 if (!$update) { … … 241 236 242 237 function wp_create_category($cat_name) { 243 $cat_array = compact('cat_name'); 244 return wp_insert_category($cat_array); 238 if ( $id = category_exists($cat_name) ) 239 return $id; 240 $cat_array = array('cat_name' => $cat_name, 'type' => TAXONOMY_CATEGORY); 241 242 if ( $id = category_object_exists($cat_name) ) { 243 $category = get_category($id); 244 $cat_array['type'] = $category->type | $cat_array['type']; 245 $cat_array['cat_ID'] = $id; 246 return wp_update_category($cat_array); 247 } else { 248 return wp_insert_category($cat_array); 249 } 245 250 } 246 251 … … 261 266 } 262 267 268 function category_object_exists($cat_name) { 269 global $wpdb; 270 if (!$category_nicename = sanitize_title($cat_name)) 271 return 0; 272 273 return (int) $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = '$category_nicename'"); 274 } 275 263 276 function category_exists($cat_name) { 264 277 global $wpdb; … … 266 279 return 0; 267 280 268 return (int) $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = '$category_nicename'"); 281 return (int) $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = '$category_nicename' AND ( type & " . TAXONOMY_CATEGORY . " != 0 )"); 282 } 283 284 function tag_exists($tag_name) { 285 global $wpdb; 286 if (! $tag_nicename = sanitize_title($tag_name)) 287 return 0; 288 289 return (int) $wpdb->get_var("SELECT cat_ID FROM $wpdb->categories WHERE category_nicename = '$tag_nicename' AND ( type & " . TAXONOMY_TAG . " != 0 )"); 269 290 } 270 291 271 292 function wp_create_tag($tag_name) { 293 if ( $id = tag_exists($tag_name) ) 294 return $id; 272 295 $tag_array = array('cat_name' => $tag_name, 'type' => TAXONOMY_TAG); 273 return wp_insert_category($tag_array); 296 297 if ( $id = category_object_exists($tag_name) ) { 298 error_log("$tag_name exists", 0); 299 $category = get_category($id); 300 $tag_array['type'] = $category->type | $tag_array['type']; 301 $tag_array['cat_ID'] = $id; 302 error_log("Type: {$tag_array['type']}", 0); 303 $id = wp_update_category($tag_array); 304 error_log("Tag id $id", 0); 305 return $id; 306 } else { 307 return wp_insert_category($tag_array); 308 } 274 309 } 275 310 -
trunk/wp-includes/post.php
r5248 r5271 809 809 if ( !$tag_slug = sanitize_title( $tag ) ) 810 810 continue; // discard 811 if ( !$tag_id = category_exists( $tag ) )811 if ( !$tag_id = tag_exists( $tag ) ) 812 812 $tag_id = wp_create_tag( $tag ); 813 813 $tag_ids[] = $tag_id;
Note: See TracChangeset
for help on using the changeset viewer.