<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
    <title></title>
  </head>

  <body>
    <p style="margin: 0px;">You&#39;re certainly going about this the hard way.&#160; Why not just use the IXR library already bundled with WordPress?</p>

    <p style="margin: 0px;">&#160;</p>

    <p style="margin: 0px;">&lt;?php</p>

    <p style="margin: 0px;">&#160;</p>

    <p style="margin: 0px;">include_once(ABSPATH . WPINC . &#39;/class-IXR.php&#39;);<br />
    <br />
    $rpc = new IXR_Client( &quot;http://wpmu.localhost/xmlrpc.php&quot; );<br />
    $status = $rpc-&gt;query(<br />
    &#160;&#160;&#160; &quot;wp.getComments&quot;,&#160;&#160; // method name<br />
    &#160;&#160;&#160; &quot;2&quot;,&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; // blog id<br />
    &#160;&#160;&#160; &quot;admin&quot;,&#160;&#160; // username<br />
    &#160;&#160;&#160; &quot;disney75&quot;, // password</p>

    <p style="margin: 0px;">&#160;&#160;&#160; array(<br />
    &#160;&#160;&#160;&#160;&#160;&#160;&#160; &quot;status&quot;&#160;&#160; =&gt; &quot;approve&quot;<br />
    &#160;&#160;&#160; )<br />
    );<br />
    <br />
    if( !$status ) {<br />
    &#160;&#160;&#160; print &quot;Error ( &quot; . $rpc-&gt;getErrorCode( ) . &quot; ) : &quot;;<br />
    &#160;&#160;&#160; print $rpc-&gt;getErrorMessage( ) . &quot;\n&quot;;<br />
    &#160;&#160;&#160; exit;<br />
    }<br />
    <br />
    $response= $rpc-&gt;getResponse( );<br />
    print_r( $response );</p>

    <p style="margin: 0px;">&#160;</p>

    <p style="margin: 0px;">?&gt;</p>

    <p style="margin: 0px;">&#160;</p>

    <p style="margin: 0px;">This is a tested setup and should work regardless of any issue you might face instantiating a CURL request and setting your headers from scratch.<br />
    <span></span></p>

    <p>&#160;</p>

    <div style="margin: 5px 0px 5px 0px; font-family: monospace;">
      On May 14, 2010 at 3:57 PM Luke Mackenzie &lt;luke@lukem.co.uk&gt; wrote:<br />
      <br />
      &gt; Thanks again,<br />
      &gt;<br />
      &gt; Can anyone confirm if the blog_id parameter should work in the wp.getComments call? This is what I&#39;m doing to test it:<br />
      &gt;<br />
      &gt; I&#39;ve tried passing the blog ID as both a string and an integer. Wordpress MU version is 2.9.2<br />
      &gt;<br />
      &gt; I always get the comments from the default blog.<br />
      &gt;<br />
      &gt; &lt;?php<br />
      &gt;<br />
      &gt; error_reporting(E_ALL);<br />
      &gt;<br />
      &gt; $method= &#39;wp.getComments&#39;;<br />
      &gt;<br />
      &gt; $username = &#39;admin&#39;;<br />
      &gt;<br />
      &gt; $password = &#39;disney75&#39;;<br />
      &gt;<br />
      &gt;<br />
      &gt; $blog_id = 2;<br />
      &gt;<br />
      &gt; $params = array($blog_id, $username, $password, array(&#39;status&#39;=&gt;&#39;approve&#39;));<br />
      &gt;<br />
      &gt; $service_url = &#39;http://wpmu.localhost/xmlrpc.php&#39;;<br />
      &gt;<br />
      &gt; //Using the XML-RPC extension to format the XML package<br />
      &gt;<br />
      &gt; $request = xmlrpc_encode_request($method, $params);<br />
      &gt;<br />
      &gt; //var_dump($request);<br />
      &gt;<br />
      &gt; $req = curl_init($service_url);<br />
      &gt;<br />
      &gt; // Using the cURL extension to send it off,&#160; first creating a custom header block<br />
      &gt;<br />
      &gt; $headers = array();<br />
      &gt;<br />
      &gt; array_push($headers,&quot;Content-Type: text/xml&quot;);<br />
      &gt;<br />
      &gt; array_push($headers,&quot;Content-Length: &quot;.strlen($request));<br />
      &gt;<br />
      &gt; array_push($headers,&quot;\r\n&quot;);<br />
      &gt;<br />
      &gt; //URL to post to<br />
      &gt;<br />
      &gt; curl_setopt($req, CURLOPT_URL, $service_url);<br />
      &gt;<br />
      &gt; //Setting options for a secure SSL based xmlrpc server<br />
      &gt;<br />
      &gt; curl_setopt($req, CURLOPT_SSL_VERIFYPEER, false);<br />
      &gt;<br />
      &gt; curl_setopt($req, CURLOPT_SSL_VERIFYHOST, 2);<br />
      &gt;<br />
      &gt; curl_setopt( $req, CURLOPT_CUSTOMREQUEST, &#39;POST&#39; );<br />
      &gt;<br />
      &gt; curl_setopt($req, CURLOPT_RETURNTRANSFER, 1 );<br />
      &gt;<br />
      &gt; curl_setopt($req, CURLOPT_HTTPHEADER, $headers );<br />
      &gt;<br />
      &gt; curl_setopt( $req, CURLOPT_POSTFIELDS, $request );<br />
      &gt;<br />
      &gt; //Finally run<br />
      &gt;<br />
      &gt; $response = curl_exec($req);<br />
      &gt;<br />
      &gt; //Close the cURL connection<br />
      &gt;<br />
      &gt; curl_close($req);<br />
      &gt;<br />
      &gt; //Decoding the response to be displayed<br />
      &gt;<br />
      &gt; var_dump($response);<br />
      &gt;<br />
      &gt;<br />
      &gt;<br />
      &gt; On 14 May 2010, at 15:51, eric@eamann.com wrote:<br />
      &gt;<br />
      &gt; &gt; You can define your own XML-RPC methods and the functions that handle those method calls.&#160; That&#39;s what I meant by the handler function.&#160; For example, I use XML-RPC in all my plug-ins to report back installation progress and errors - each plug-in makes an XML-RPC call to a custom handler (method) on my server.<br />
      &gt; &gt;&#160;<br />
      &gt; &gt; Basically, you can define your own version of wp.getComments (maybe wpCustom.getComments) that focuses on MU blogs in whatever way you choose (identifying one blog by blog ID or getting information universally).<br />
      &gt; &gt;&#160;<br />
      &gt; &gt; On May 14, 2010 at 2:42 PM Luke Mackenzie &lt;luke@lukem.co.uk&gt; wrote:<br />
      &gt; &gt;<br />
      &gt; &gt; &gt; Could you expand on what you mean by the handler function?<br />
      &gt; &gt; &gt;<br />
      &gt; &gt; &gt; I&#39;m trying this call as an example:<br />
      &gt; &gt; &gt;<br />
      &gt; &gt; &gt; http://codex.wordpress.org/XML-RPC/wp.getComments<br />
      &gt; &gt; &gt;<br />
      &gt; &gt; &gt; Altering the blog_id has no effect on the comments returned. I have read elsewhere that the blog_id parameter is ignored. Is that still the case?<br />
      &gt; &gt; &gt;<br />
      &gt; &gt; &gt; An alternative would be to use different endpoints per blog as I believe these are separate in MU?<br />
      &gt; &gt; &gt;<br />
      &gt; &gt; &gt;<br />
      &gt; &gt; &gt; Thanks again,<br />
      &gt; &gt; &gt;<br />
      &gt; &gt; &gt; Luke.<br />
      &gt; &gt; &gt;<br />
      &gt; &gt; &gt;<br />
      &gt; &gt; &gt; On 14 May 2010, at 14:26, Eric Mann wrote:<br />
      &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; Luke,<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; I&#39;ve worked with WordPress&#39; XMLRPC system before (using a WP-Hive<br />
      &gt; &gt; &gt; &gt; installation with multiple separate blogs similar to a WPMU set-up).&#160; The<br />
      &gt; &gt; &gt; &gt; new approach you&#39;re using is definitely simpler and easier to implement (I<br />
      &gt; &gt; &gt; &gt; tried the 5ubliminal one as well the first time).<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; Whether or not you can distinguish between separate blogs in a MU<br />
      &gt; &gt; &gt; &gt; installation depends entirely on how you build your handler function.&#160; You<br />
      &gt; &gt; &gt; &gt; can build it to distinguish the separate blogs, to only function on specific<br />
      &gt; &gt; &gt; &gt; blogs, or to treat the entire system as a single WordPress site.&#160; It&#39;s all<br />
      &gt; &gt; &gt; &gt; up to you.<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; Yes, you can retrieve and post to custom fields.<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; Absolutely writing a plug-in is the way to go.&#160; The only other options are<br />
      &gt; &gt; &gt; &gt; to change core files (BAD idea) or to build it into your theme, in which<br />
      &gt; &gt; &gt; &gt; case it could ONLY be used on MU sites using that theme.&#160; Build it as a<br />
      &gt; &gt; &gt; &gt; site-wide MU plug-in that can be controlled on a site-by-site basis by the<br />
      &gt; &gt; &gt; &gt; global admin.<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; ~Eric<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; Eric Mann<br />
      &gt; &gt; &gt; &gt; www.eamann.com<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; -----Original Message-----<br />
      &gt; &gt; &gt; &gt; From: wp-xmlrpc-bounces@lists.automattic.com<br />
      &gt; &gt; &gt; &gt; [mailto:wp-xmlrpc-bounces@lists.automattic.com] On Behalf Of Luke Mackenzie<br />
      &gt; &gt; &gt; &gt; Sent: Friday, May 14, 2010 5:52 AM<br />
      &gt; &gt; &gt; &gt; To: wp-xmlrpc@lists.automattic.com<br />
      &gt; &gt; &gt; &gt; Subject: [wp-xmlrpc] XMLRPC for Wordpress Mu<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; Hi,<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; I have been tasked with creating an API for retrieving and adding content to<br />
      &gt; &gt; &gt; &gt; Wordpress from a flash application and legacy CMS (non-PHP). My plan is to<br />
      &gt; &gt; &gt; &gt; utilise the existing default xmlrpc endpoint and add any additional<br />
      &gt; &gt; &gt; &gt; functionality by creating a plugin which hooks into xmlrpc_methods.<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; A previous attempt had been made by another developer based on the following<br />
      &gt; &gt; &gt; &gt; code:<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; http://blog.5ubliminal.com/posts/remote-control-wordpress-blog-xmlrpc-api/<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; This code looks unwieldy and poorly documented to me and my preference would<br />
      &gt; &gt; &gt; &gt; be to use this approach:<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; http://kovshenin.com/archives/custom-xml-rpc-methods-in-wordpress/<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; I would be grateful if anyone with experience in this area could confirm<br />
      &gt; &gt; &gt; &gt; that:<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; - I will be able to distinguish between separate blogs in an MU installation<br />
      &gt; &gt; &gt; &gt; when both retrieving and posting data via XMLRPC<br />
      &gt; &gt; &gt; &gt; - I will be able to retrieve and post to custom fields<br />
      &gt; &gt; &gt; &gt; - writing a plugin is the way to go.<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; We do not have the option of using Wordpress 3 as it is still in Beta and we<br />
      &gt; &gt; &gt; &gt; are under time pressure.<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; I would greatly appreciate appreciate any input / advice.<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; Many thanks,<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; Luke.<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; _______________________________________________<br />
      &gt; &gt; &gt; &gt; wp-xmlrpc mailing list<br />
      &gt; &gt; &gt; &gt; wp-xmlrpc@lists.automattic.com<br />
      &gt; &gt; &gt; &gt; http://lists.automattic.com/mailman/listinfo/wp-xmlrpc<br />
      &gt; &gt; &gt; &gt;<br />
      &gt; &gt; &gt; &gt; _______________________________________________<br />
      &gt; &gt; &gt; &gt; wp-xmlrpc mailing list<br />
      &gt; &gt; &gt; &gt; wp-xmlrpc@lists.automattic.com<br />
      &gt; &gt; &gt; &gt; http://lists.automattic.com/mailman/listinfo/wp-xmlrpc<br />
      &gt; &gt; &gt;<br />
      &gt; &gt; &gt; _______________________________________________<br />
      &gt; &gt; &gt; wp-xmlrpc mailing list<br />
      &gt; &gt; &gt; wp-xmlrpc@lists.automattic.com<br />
      &gt; &gt; &gt; http://lists.automattic.com/mailman/listinfo/wp-xmlrpc<br />
      &gt; &gt; _______________________________________________<br />
      &gt; &gt; wp-xmlrpc mailing list<br />
      &gt; &gt; wp-xmlrpc@lists.automattic.com<br />
      &gt; &gt; http://lists.automattic.com/mailman/listinfo/wp-xmlrpc<br />
      &gt;<br />
    </div>
  </body>
</html>