Use metadata API in do_all_pings() to delete post meta (cleaner, plays better with cache). Remove redundant query to retrieve meta_id. See #18196.
git-svn-id: http://svn.automattic.com/wordpress/trunk@18855 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
322c2bde5e
commit
a7a8d9e3e3
|
@ -1664,21 +1664,15 @@ function do_all_pings() {
|
|||
global $wpdb;
|
||||
|
||||
// Do pingbacks
|
||||
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")) {
|
||||
$mid = $wpdb->get_var( "SELECT meta_id FROM {$wpdb->postmeta} WHERE post_id = {$ping->ID} AND meta_key = '_pingme' LIMIT 1");
|
||||
do_action( 'delete_postmeta', $mid );
|
||||
$wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->postmeta} WHERE meta_id = %d", $mid ) );
|
||||
do_action( 'deleted_postmeta', $mid );
|
||||
pingback($ping->post_content, $ping->ID);
|
||||
while ($ping = $wpdb->get_row("SELECT ID, post_content, meta_id FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_pingme' LIMIT 1")) {
|
||||
delete_metadata_by_mid( 'post', $ping->meta_id );
|
||||
pingback( $ping->post_content, $ping->ID );
|
||||
}
|
||||
|
||||
// Do Enclosures
|
||||
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")) {
|
||||
$mid = $wpdb->get_var( $wpdb->prepare("SELECT meta_id FROM {$wpdb->postmeta} WHERE post_id = %d AND meta_key = '_encloseme'", $enclosure->ID) );
|
||||
do_action( 'delete_postmeta', $mid );
|
||||
$wpdb->query( $wpdb->prepare("DELETE FROM {$wpdb->postmeta} WHERE meta_id = %d", $mid) );
|
||||
do_action( 'deleted_postmeta', $mid );
|
||||
do_enclose($enclosure->post_content, $enclosure->ID);
|
||||
while ($enclosure = $wpdb->get_row("SELECT ID, post_content, meta_id FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_encloseme' LIMIT 1")) {
|
||||
delete_metadata_by_mid( 'post', $enclosure->meta_id );
|
||||
do_enclose( $enclosure->post_content, $enclosure->ID );
|
||||
}
|
||||
|
||||
// Do Trackbacks
|
||||
|
|
Loading…
Reference in New Issue