web/wp-admin/update-links.php
author ymh <ymh.work@gmail.com>
Mon, 22 Mar 2010 16:36:28 +0100
changeset 5 ac511f1ccc8e
parent 1 0d28b7c10758
permissions -rw-r--r--
add hgignore
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
0d28b7c10758 First commit
ymh
parents:
diff changeset
     1
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
     2
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
     3
 * Send blog links to pingomatic.com to update.
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
 * You can disable this feature by deleting the option 'use_linksupdate' or
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
 * setting the option to false. If no links exist, then no links are sent.
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
 * Snoopy is included, but is not used. Fsockopen() is used instead to send link
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
 * URLs.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
 * @package WordPress
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
 * @subpackage Administration
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
/** Load WordPress Bootstrap */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
require_once('../wp-load.php');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
if ( !get_option('use_linksupdate') )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
	wp_die(__('Feature disabled.'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
$link_uris = $wpdb->get_col("SELECT link_url FROM $wpdb->links");
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
if ( !$link_uris )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
	wp_die(__('No links'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
$link_uris = urlencode( join( $link_uris, "\n" ) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
$query_string = "uris=$link_uris";
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
$options = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
$options['timeout'] = 30;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
$options['body'] = $query_string;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
$options['headers'] = array(
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
	'content-type' => 'application/x-www-form-urlencoded; charset='.get_option('blog_charset'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
	'content-length' => strlen( $query_string ),
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
$response = wp_remote_get('http://api.pingomatic.com/updated-batch/', $options);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
if ( is_wp_error( $response ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
	wp_die(__('Request Failed.'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
if ( $response['response']['code'] != 200 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
	wp_die(__('Request Failed.'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
$body = str_replace(array("\r\n", "\r"), "\n", $response['body']);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
$returns = explode("\n", $body);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
foreach ($returns as $return) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
	$time = substr($return, 0, 19);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
	$uri = preg_replace('/(.*?) | (.*?)/', '$2', $return);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
	$wpdb->update( $wpdb->links, array('link_updated' => $time), array('link_url' => $uri) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
?>