Fix ping races. fixes #2088

git-svn-id: http://svn.automattic.com/wordpress/trunk@3322 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2005-12-18 15:49:43 +00:00
parent 4e79fa55fe
commit 02fb838f97
1 changed files with 11 additions and 17 deletions

View File

@ -7,28 +7,22 @@ register_shutdown_function('execute_all_pings');
function execute_all_pings() { function execute_all_pings() {
global $wpdb; global $wpdb;
// Do pingbacks // Do pingbacks
if($pings = $wpdb->get_results("SELECT * FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_pingme';")) { 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")) {
foreach($pings as $ping) { $wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$ping->ID} AND meta_key = '_pingme';");
pingback($ping->post_content, $ping->ID); pingback($ping->post_content, $ping->ID);
echo "Pingback: $ping->post_title : $ping->ID<br/>"; echo "Pingback: $ping->post_title : $ping->ID<br/>";
$wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$ping->ID} AND meta_key = '_pingme';");
}
} }
// Do Enclosures // Do Enclosures
if($enclosures = $wpdb->get_results("SELECT * FROM {$wpdb->posts}, {$wpdb->postmeta} WHERE {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id AND {$wpdb->postmeta}.meta_key = '_encloseme';")) { 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")) {
foreach($enclosures as $enclosure) { $wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$enclosure->ID} AND meta_key = '_encloseme';");
do_enclose($enclosure->post_content, $enclosure->ID); do_enclose($enclosure->post_content, $enclosure->ID);
echo "Enclosure: $enclosure->post_title : $enclosure->ID<br/>"; echo "Enclosure: $enclosure->post_title : $enclosure->ID<br/>";
$wpdb->query("DELETE FROM {$wpdb->postmeta} WHERE post_id = {$enclosure->ID} AND meta_key = '_encloseme';");
}
} }
// Do Trackbacks // Do Trackbacks
if($trackbacks = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE TRIM(to_ping) != '' AND post_status != 'draft'")) { while ($trackback = $wpdb->get_row("SELECT ID FROM $wpdb->posts WHERE TRIM(to_ping) != '' AND post_status != 'draft' LIMIT 1")) {
foreach($trackbacks as $trackback) {
echo "Trackback : $trackback->ID<br/>"; echo "Trackback : $trackback->ID<br/>";
do_trackbacks($trackback->ID); do_trackbacks($trackback->ID);
} }
}
} }
_e('Done.'); _e('Done.');