added pingback.extensions.getPingbacks
git-svn-id: http://svn.automattic.com/wordpress/trunk@1672 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
83d9723226
commit
fcb0c54764
45
xmlrpc.php
45
xmlrpc.php
|
@ -113,6 +113,7 @@ class wp_xmlrpc_server extends IXR_Server {
|
||||||
|
|
||||||
// PingBack
|
// PingBack
|
||||||
'pingback.ping' => 'this:pingback_ping',
|
'pingback.ping' => 'this:pingback_ping',
|
||||||
|
'pingback.extensions.getPingbacks' => 'this:pingback_extensions_getPingbacks',
|
||||||
|
|
||||||
'demo.sayHello' => 'this:sayHello',
|
'demo.sayHello' => 'this:sayHello',
|
||||||
'demo.addTwoNumbers' => 'this:addTwoNumbers'
|
'demo.addTwoNumbers' => 'this:addTwoNumbers'
|
||||||
|
@ -1016,7 +1017,7 @@ class wp_xmlrpc_server extends IXR_Server {
|
||||||
|
|
||||||
global $wpdb;
|
global $wpdb;
|
||||||
|
|
||||||
$post_ID = intval($args[0]);
|
$post_ID = intval($args);
|
||||||
|
|
||||||
$actual_post = wp_get_single_post($post_ID, ARRAY_A);
|
$actual_post = wp_get_single_post($post_ID, ARRAY_A);
|
||||||
|
|
||||||
|
@ -1110,6 +1111,8 @@ class wp_xmlrpc_server extends IXR_Server {
|
||||||
|
|
||||||
|
|
||||||
// let's find which post is linked to
|
// let's find which post is linked to
|
||||||
|
// FIXME: does url_to_postid() cover all these cases already?
|
||||||
|
// if so, then let's use it and drop the old code.
|
||||||
$urltest = parse_url($pagelinkedto);
|
$urltest = parse_url($pagelinkedto);
|
||||||
if ($post_ID = url_to_postid($pagelinkedto)) {
|
if ($post_ID = url_to_postid($pagelinkedto)) {
|
||||||
$way = 'url_to_postid()';
|
$way = 'url_to_postid()';
|
||||||
|
@ -1261,6 +1264,46 @@ class wp_xmlrpc_server extends IXR_Server {
|
||||||
|
|
||||||
return "Pingback from $pagelinkedfrom to $pagelinkedto registered. Keep the web talking! :-)";
|
return "Pingback from $pagelinkedfrom to $pagelinkedto registered. Keep the web talking! :-)";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* pingback.extensions.getPingbacks returns an array of URLs
|
||||||
|
that pingbacked the given URL
|
||||||
|
specs on http://www.aquarionics.com/misc/archives/blogite/0198.html */
|
||||||
|
function pingback_extensions_getPingbacks($args) {
|
||||||
|
|
||||||
|
global $wpdb;
|
||||||
|
|
||||||
|
$url = $args;
|
||||||
|
|
||||||
|
$post_ID = url_to_postid($url);
|
||||||
|
if (!$post_ID) {
|
||||||
|
// We aren't sure that the resource is available and/or pingback enabled
|
||||||
|
return '0x0021';
|
||||||
|
}
|
||||||
|
|
||||||
|
$actual_post = wp_get_single_post($post_ID, ARRAY_A);
|
||||||
|
|
||||||
|
if (!$actual_post) {
|
||||||
|
// No such post = resource not found
|
||||||
|
return '0x0020';
|
||||||
|
}
|
||||||
|
|
||||||
|
$comments = $wpdb->get_results("SELECT comment_author_url, comment_content, comment_author_IP, comment_type FROM $wpdb->comments WHERE comment_post_ID = $post_ID");
|
||||||
|
|
||||||
|
if (!$comments) {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$pingbacks = array();
|
||||||
|
foreach($comments as $comment) {
|
||||||
|
if ((strpos($comment->comment_content, '<pingback />') === 0)
|
||||||
|
|| ('pingback' == $comment->comment_type)) {
|
||||||
|
$pingbacks[] = $comment->comment_author_url;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $pingbacks;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue