summaryrefslogtreecommitdiffstats
path: root/wp-includes/post.php
diff options
context:
space:
mode:
authordonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2006-12-11 11:45:03 +0000
committerdonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2006-12-11 11:45:03 +0000
commit040b8591582940de99442bb1de04afdf9d3daf59 (patch)
treeceaa054562fa6089c307b48fc30e963eee357e73 /wp-includes/post.php
parent91725f574d4fa83b30d8d7c2794e9f078628e6da (diff)
downloadwordpress-mu-040b8591582940de99442bb1de04afdf9d3daf59.tar.gz
wordpress-mu-040b8591582940de99442bb1de04afdf9d3daf59.tar.xz
wordpress-mu-040b8591582940de99442bb1de04afdf9d3daf59.zip
WP Merge to rev 4640
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@823 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-includes/post.php')
-rw-r--r--wp-includes/post.php47
1 files changed, 30 insertions, 17 deletions
diff --git a/wp-includes/post.php b/wp-includes/post.php
index 4d5dfd4..d0fd6df 100644
--- a/wp-includes/post.php
+++ b/wp-includes/post.php
@@ -438,8 +438,7 @@ function wp_delete_post($postid = 0) {
$wpdb->query("DELETE FROM $wpdb->postmeta WHERE post_id = $postid");
if ( 'page' == $post->post_type ) {
- wp_cache_delete( 'all_page_ids', 'pages' );
- wp_cache_delete( 'get_pages', 'page' );
+ clean_page_cache($postid);
$wp_rewrite->flush_rules();
}
@@ -652,7 +651,7 @@ function wp_insert_post($postarr = array()) {
if ( 'page' == $post_type ) {
clean_page_cache($post_ID);
- wp_cache_delete($post_ID, 'pages');
+ $wp_rewrite->flush_rules();
} else {
clean_post_cache($post_ID);
}
@@ -691,10 +690,6 @@ function wp_insert_post($postarr = array()) {
wp_schedule_single_event(time(), 'do_pings');
}
} else if ($post_type == 'page') {
- wp_cache_delete( 'all_page_ids', 'pages' );
- wp_cache_delete( 'get_pages', 'page' );
- $wp_rewrite->flush_rules();
-
if ( !empty($page_template) )
if ( ! update_post_meta($post_ID, '_wp_page_template', $page_template))
add_post_meta($post_ID, '_wp_page_template', $page_template, true);
@@ -818,13 +813,9 @@ function wp_set_post_categories($post_ID = 0, $post_categories = array()) {
foreach ( $all_affected_cats as $cat_id ) {
$count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->post2cat, $wpdb->posts WHERE $wpdb->posts.ID=$wpdb->post2cat.post_id AND post_status = 'publish' AND post_type = 'post' AND category_id = '$cat_id'");
$wpdb->query("UPDATE $wpdb->categories SET category_count = '$count' WHERE cat_ID = '$cat_id'");
- wp_cache_delete($cat_id, 'category');
+ clean_category_cache($cat_id);
do_action('edit_category', $cat_id);
}
-
- wp_cache_delete('get_categories', 'category');
-
- do_action('edit_post', $post_ID);
} // wp_set_post_categories()
//
@@ -1164,11 +1155,6 @@ function &get_pages($args = '') {
return $pages;
}
-function delete_get_pages_cache() {
- wp_cache_delete( 'get_pages', 'page' );
-}
-add_action( 'save_post', 'delete_get_pages_cache' );
-
function generate_page_uri_index() {
global $wpdb;
@@ -1439,4 +1425,31 @@ function wp_update_attachment_metadata( $post_id, $data ) {
return add_post_meta( $post_id, '_wp_attachment_metadata', $data );
}
+function wp_check_for_changed_slugs($post_id) {
+ if ( !strlen($_POST['wp-old-slug']) )
+ return $post_id;
+
+ $post = &get_post($post_id);
+
+ // we're only concerned with published posts
+ if ( $post->post_status != 'publish' || $post->post_type != 'post' )
+ return $post_id;
+
+ // only bother if the slug has changed
+ if ( $post->post_name == $_POST['wp-old-slug'] )
+ return $post_id;
+
+ $old_slugs = (array) get_post_meta($post_id, '_wp_old_slug');
+
+ // if we haven't added this old slug before, add it now
+ if ( !count($old_slugs) || !in_array($_POST['wp-old-slug'], $old_slugs) )
+ add_post_meta($post_id, '_wp_old_slug', $_POST['wp-old-slug']);
+
+ // if the new slug was used previously, delete it from the list
+ if ( in_array($post->post_name, $old_slugs) )
+ delete_post_meta($post_id, '_wp_old_slug', $post->post_name);
+
+ return $post_id;
+}
+
?>