WordPress.org

Make WordPress Core

Changeset 11968


Ignore:
Timestamp:
09/24/09 17:10:28 (5 years ago)
Author:
ryan
Message:

Actions for postmeta updates. Props Demitrious Kelly. see #10750

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/post.php

    r11930 r11968  
    589589 
    590590        $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->postmeta (post_id,meta_key,meta_value ) VALUES (%s, %s, %s)", $post_ID, $metakey, $metavalue) ); 
     591        do_action( 'added_postmeta', $wpdb->insert_id, $post_ID, $metakey, $metavalue ); 
     592         
    591593        return $wpdb->insert_id; 
    592594    } 
     
    609611    wp_cache_delete($post_id, 'post_meta'); 
    610612 
    611     return $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->postmeta WHERE meta_id = %d", $mid) ); 
     613    do_action( 'delete_postmeta', $mid ); 
     614    $rval = $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->postmeta WHERE meta_id = %d", $mid) ); 
     615    do_action( 'deleted_postmeta', $mid ); 
     616 
     617    return $rval; 
    612618} 
    613619 
     
    698704    $where = compact( 'meta_id' ); 
    699705 
    700     return $wpdb->update( $wpdb->postmeta, $data, $where ); 
     706    do_action( 'update_postmeta', $meta_id, $post_id, $meta_key, $meta_value ); 
     707    $rval = $wpdb->update( $wpdb->postmeta, $data, $where ); 
     708    do_action( 'updated_postmeta', $meta_id, $post_id, $meta_key, $meta_value ); 
     709 
     710    return $rval; 
    701711} 
    702712 
  • trunk/wp-includes/comment.php

    r11945 r11968  
    14501450    // Do pingbacks 
    14511451    while ($ping = $wpdb->get_row("SELECT * FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_pingme' LIMIT 1")) { 
    1452         $wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$ping->ID} AND meta_key = '_pingme';"); 
     1452        $mid = $wpdb->get_var( "SELECT meta_id FROM {$wpdb->postmeta} WHERE post_id = {$ping->ID} AND meta_key = '_pingme' LIMIT 1"); 
     1453        do_action( 'delete_postmeta', $mid ); 
     1454        $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->postmeta} WHERE meta_id = %d", $mid ) ); 
     1455        do_action( 'deleted_postmeta', $mid ); 
    14531456        pingback($ping->post_content, $ping->ID); 
    14541457    } 
     
    14561459    // Do Enclosures 
    14571460    while ($enclosure = $wpdb->get_row("SELECT * FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_encloseme' LIMIT 1")) { 
    1458         $wpdb->query( $wpdb->prepare("DELETE FROM {$wpdb->postmeta} WHERE post_id = %d AND meta_key = '_encloseme';", $enclosure->ID) ); 
     1461        $mid = $wpdb->get_var( $wpdb->prepare("SELECT meta_id FROM {$wpdb->postmeta} WHERE post_id = %d AND meta_key = '_encloseme'", $enclosure->ID) ); 
     1462        do_action( 'delete_postmeta', $mid ); 
     1463        $wpdb->query( $wpdb->prepare("DELETE FROM {$wpdb->postmeta} WHERE meta_id =  %d", $mid) ); 
     1464        do_action( 'deleted_postmeta', $mid ); 
    14591465        do_enclose($enclosure->post_content, $enclosure->ID); 
    14601466    } 
  • trunk/wp-includes/functions.php

    r11961 r11968  
    11641164    foreach ( $pung as $link_test ) { 
    11651165        if ( !in_array( $link_test, $post_links_temp[0] ) ) { // link no longer in post 
    1166             $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = 'enclosure' AND meta_value LIKE (%s)", $post_ID, $link_test . '%') ); 
     1166            $mid = $wpdb->get_col( $wpdb->prepare("SELECT meta_id FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = 'enclosure' AND meta_value LIKE (%s)", $post_ID, $link_test . '%') ); 
     1167            do_action( 'delete_postmeta', $mid ); 
     1168            $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->postmeta WHERE post_id IN(%s)", implode( ',', $mid ) ) ); 
     1169            do_action( 'deleted_postmeta', $mid ); 
    11671170        } 
    11681171    } 
     
    11871190                    $meta_value = "$url\n$len\n$type\n"; 
    11881191                    $wpdb->insert($wpdb->postmeta, array('post_id' => $post_ID, 'meta_key' => 'enclosure', 'meta_value' => $meta_value) ); 
     1192                    do_action( 'added_postmeta', $wpdb->insert_id, $post_ID, 'enclosure', $meta_value ); 
    11891193                } 
    11901194            } 
  • trunk/wp-includes/meta.php

    r11948 r11968  
    5858    $meta_key = stripslashes($meta_key); 
    5959 
    60     if ( ! $wpdb->get_var( $wpdb->prepare( "SELECT meta_key FROM $table WHERE meta_key = %s AND $column = %d", $meta_key, $object_id ) ) ) 
     60    if ( ! $meta_id = $wpdb->get_var( $wpdb->prepare( "SELECT meta_id FROM $table WHERE meta_key = %s AND $column = %d", $meta_key, $object_id ) ) ) 
    6161        return add_metadata($meta_type, $object_id, $meta_key, $meta_value); 
    6262 
     
    7171    } 
    7272 
    73     do_action( "update_{$meta_type}_meta", $object_id, $meta_key, $meta_value ); 
     73    do_action( "update_{$meta_type}_meta", $object_id, $meta_key, $meta_value, $meta_id ); 
    7474 
    7575    $wpdb->update( $table, $data, $where ); 
    7676    wp_cache_delete($object_id, $meta_type . '_meta'); 
    7777 
    78     do_action( "updated_{$meta_type}_meta", $object_id, $meta_key, $meta_value ); 
     78    do_action( "updated_{$meta_type}_meta", $object_id, $meta_key, $meta_value, $meta_id ); 
    7979 
    8080    return true; 
     
    9696    $meta_value = maybe_serialize( stripslashes_deep($meta_value) ); 
    9797 
    98     $query = $wpdb->prepare( "DELETE FROM $table WHERE meta_key = %s", $meta_key ); 
    99  
     98    $query = $wpdb->prepare( "SELECT meta_id FROM $table WHERE meta_key = %s", $meta_key ); 
     99     
    100100    if ( $meta_value ) 
    101101        $query .= $wpdb->prepare("AND meta_value = %s", $meta_value ); 
     102 
     103    $meta_ids = $wpdb->get_col( $query ); 
     104    if ( !count( $meta_ids ) ) 
     105        return false; 
     106 
     107    $query = "DELETE FROM $table WHERE meta_id IN( " . implode( ',', $meta_ids ) . " )"; 
    102108     
    103109    $count = $wpdb->query($query); 
     
    108114    wp_cache_delete($object_id, $meta_type . '_meta'); 
    109115 
    110     do_action( "deleted_{$meta_type}_meta", $object_id, $meta_key, $meta_value ); 
     116    do_action( "deleted_{$meta_type}_meta", $object_id, $meta_key, $meta_value, $meta_ids ); 
    111117 
    112118    return true; 
  • trunk/wp-includes/post.php

    r11965 r11968  
    602602    $post_ids = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT post_id FROM $wpdb->postmeta WHERE meta_key = %s", $post_meta_key)); 
    603603    if ( $post_ids ) { 
    604         $wpdb->query($wpdb->prepare("DELETE FROM $wpdb->postmeta WHERE meta_key = %s", $post_meta_key)); 
     604        $postmetaids = $wpdb->get_col( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE meta_key = %s", $post_meta_key ) ); 
     605        do_action( 'delete_postmeta', $postmetaids ); 
     606        $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->postmeta WHERE meta_id IN(%s)", implode( ',', $postmetaids) ) ); 
     607        do_action( 'deleted_postmeta', $postmetaids ); 
    605608        foreach ( $post_ids as $post_id ) 
    606609            wp_cache_delete($post_id, 'post_meta'); 
     
    11031106    $wpdb->update( $wpdb->posts, $parent_data, $parent_where + array( 'post_type' => 'attachment' ) ); 
    11041107 
    1105     $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->comments WHERE comment_post_ID = %d", $postid )); 
    1106  
    1107     $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->postmeta WHERE post_id = %d", $postid )); 
    1108  
     1108    $commentids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = %d", $postid )); 
     1109    do_action( 'delete_comment', $commentids ); 
     1110    $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->comments WHERE comment_ID IN(%s)", implode( ',', $commentids ) )); 
     1111    do_action( 'deleted_comment', $commentids ); 
     1112 
     1113    $postmetaids = $wpdb->get_col( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE post_id = %d ", $post_id )); 
     1114    do_action( 'delete_postmeta', $postmetaids ); 
     1115    $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->postmeta WHERE meta_id IN(%s)", implode( ',', $postmetaids ) )); 
     1116    do_action( 'deleted_postmeta', $postmetaids ); 
     1117 
     1118    do_action( 'delete_post', $post_id ); 
    11091119    $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->posts WHERE ID = %d", $postid )); 
     1120    do_action( 'deleted_post', $post_id ); 
    11101121 
    11111122    if ( 'page' == $post->post_type ) { 
     
    25852596    wp_delete_object_term_relationships($post_id, array('category', 'post_tag')); 
    25862597 
    2587     $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->comments WHERE comment_post_ID = %d", $post_id )); 
    2588  
    2589     $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->postmeta WHERE post_id = %d ", $post_id )); 
    2590  
     2598    $commentids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = %d", $post_id )); 
     2599    do_action( 'delete_comment', $commentids ); 
     2600    $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->comments WHERE comment_ID IN(%s)", implode( ',', $commentids ) )); 
     2601    do_action( 'deleted_comment', $commentids ); 
     2602 
     2603    $postmetaids = $wpdb->get_col( $wpdb->prepare( "SELECT meta_id FROM $wpdb->postmeta WHERE post_id = %d ", $post_id )); 
     2604    do_action( 'delete_postmeta', $postmetaids ); 
     2605    $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->postmeta WHERE meta_id IN(%s)", implode( ',', $postmetaids ) )); 
     2606    do_action( 'deleted_postmeta', $postmetaids ); 
     2607 
     2608    do_action( 'delete_post', $post_id ); 
    25912609    $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->posts WHERE ID = %d", $post_id )); 
     2610    do_action( 'deleted_post', $post_id ); 
    25922611 
    25932612    $uploadpath = wp_upload_dir(); 
     
    32713290 
    32723291    $data = array( 'post_id' => $post_id, 'meta_value' => '1' ); 
    3273     if ( get_option('default_pingback_flag') ) 
     3292    if ( get_option('default_pingback_flag') ) { 
    32743293        $wpdb->insert( $wpdb->postmeta, $data + array( 'meta_key' => '_pingme' ) ); 
     3294        do_action( 'added_postmeta', $wpdb->insert_id, $post_id, '_pingme', 1 ); 
     3295    } 
    32753296    $wpdb->insert( $wpdb->postmeta, $data + array( 'meta_key' => '_encloseme' ) ); 
     3297    do_action( 'added_postmeta', $wpdb->insert_id, $post_id, '_encloseme', 1 ); 
     3298 
    32763299    wp_schedule_single_event(time(), 'do_pings'); 
    32773300} 
Note: See TracChangeset for help on using the changeset viewer.