私は外部のアプリ(ユーザー名と分類データを取得し、新しい投稿を作成する必要があります)とWordPressサイトの統合に取り組んでいます。私はWP(4.0)の最新ビルドを実行しています。
XML-RPCのドキュメントは余りにも余裕があるので、Pastebinに最近(2014年?)の実用的な例をあげることができればと思っています。正直なところ、グーグルマシンは単にこれに失敗します。
理想的には、コード例は外部のXMLRPCライブラリではなくWPのバンドルライブラリ(class-IXR.php、class-wp-http-ixr-client.php)を使用するでしょう。
これはまだ機能していないものです。
<?php
get_header();
include_once( ABSPATH . WPINC . '/class-IXR.php' );
include_once( ABSPATH . WPINC . '/class-wp-http-ixr-client.php' );
$client = new WP_HTTP_IXR_CLIENT( 'redactedSITEURL' );
$post = array(
'post_type' => 'post',
'post_status' => 'draft',
'post_title' => 'Test Post',
'post_content' => 'This is my test post',
'post_author' => 1
);
$data = xmlrpc_encode_request('wp.newPost', array('redactedURL.com', 'redactedUNAME', 'redactedPASSWORD', $post);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'redactedSITEURL.com/xmlrpc.php');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$exec = curl_exec($ch);
$response = xmlrpc_decode($exec);
curl_close($ch);
var_dump($response);
?>
さて、私はばかだったので、それをやめました。
A)2年以上前の答えは古くなると思います。 b)基本的なIXRライブラリの特別なWPフレーバーが必要です。私は混乱して、「ツールは使用インターフェースでは非常に基本的なものである」のではなく、「彼らは全体の話をしているのではない」として、wp.orgの文書の疎さを取りました。
このコードは、 incutio.com にあるIXRライブラリと連携して機能します。
include('IXR_Library.php');
$usr = 'theusername';
$pwd = 'thepassword';
$xmlrpc = 'http://not-therealurl.com/xmlrpc.php';
$client = new IXR_Client($xmlrpc);
$client -> debug = true; //optional but useful
$params = array(
'post_type' => 'post',
'post_status' => 'draft',
'post_title' => 'Test Post',
'post_author' => 4,
'post_excerpt' => 'This is my test excerpt',
'post_content' => 'This is my test post. Now its longer than the excerpt.'
);
$res = $client -> query('wp.newPost',1, $usr, $pwd, $params);
例をどれだけ複雑にしますか。
これは "Hello"を出力します。
$client = new WP_HTTP_IXR_Client('http://example.com/xmlrpc.php');
$client->query('demo.sayHello');
echo $client->getResponse();
これは "9"を出力します。
$client = new WP_HTTP_IXR_Client('http://example.com/xmlrpc.php');
$client->query('demo.addTwoNumbers', 4, 5);
echo $client->getResponse();
これはWordPressのバージョンを取得します。
$client = new WP_HTTP_IXR_Client('http://example.com/xmlrpc.php');
$client->query('wp.getOptions', 0, 'username', 'password', 'software_version');
$response = $client->getResponse();
echo $response['software_version']['value'];
出典:私、4年前: http://ottopress.com/2010/wordpress-3-1-and-xml-rpc/