[wp-xmlrpc] PHP Library

eric at eamann.com eric at eamann.com
Tue Jun 15 19:06:52 UTC 2010


OK, now I understand what you're doing.
 
When I first started working with WordPress and XMLRPC, I tried building my own
library ... it was taking a long time, and I ran into many of the issues you're
running in to now.  Someone suggested I use the built-in IXR library instead,
and it made all the difference.
 
Here's a simple example:
 
include_once(ABSPATH . WPINC . '/class-IXR.php');
 
$client = new IXR_Client('destinantion_url');
 
$client->query('procedure.name', 'arg1', 'arg2', 'arg3', ...);
 
$response = $client->getResponse();
 
That will load the library, create a new client pointing at whatever WP
installation you're working with, execute your remote procedure, and store the
response (errors, data, or whatever) in the $response variable.
 
 

On June 15, 2010 at 6:51 PM Tim Golen <tim at golen.net> wrote:

> Hi Joseph,
>
> Right on, that's exactly what I needed to know.
>
> I've been using http://devzone.zend.com/article/1307 for the XML-RPC (lower
> level) API, and then building my own PHP library on top of that (with the
> Wordpress functions). I'll go and check out the IXR library to see if that
> helps.
>
> All of the calls that I am making that pull data from Wordpress are working
> fine. It's just when trying to create data (wp.newComment, wp.newCategory,
> metaWeblog.newPost) they are all giving me similar data errors:
>
> Sorry, the new category failed.
>
> Invalid Data: Please go back and try again.
>
> Content, title, and excerpt are empty.
>
> I've been debugging the thing to death and still can't get any closer. I
> have a feeling that it has something to do with how the struct datatypes are
> being encoded in the XML-RPC portion. Here is a sample of my code:
>
>
> $this->makeRequest(
> 'wp.newComment',
> array(
> new xmlrpcval($blogId),
> new xmlrpcval($this->username),
> new xmlrpcval($this->password),
> new xmlrpcval($postId),
> xmlrpc_encode(array(
> 'comment_parent'=>intval(0),
> 'content'=>strval($comment->content),
> 'author'=>strval($comment->author),
> 'author_url'=>strval($comment->author_url),
> 'author_email'=>strval($comment->author_email)
> )),
> ));
>
> The structure containing the comment information ends up being encoded to
> this:
>
> <params>
> <param>
>  <value>
>   <struct>
>    <member>
>     <name>comment_parent</name>
>     <value>
>      <int>0</int>
>
>     </value>
>    </member>
>    <member>
>     <name>content</name>
>     <value>
>      <string>comment</string>
>     </value>
>    </member>
>
>    <member>
>     <name>author</name>
>     <value>
>      <string>Tim</string>
>     </value>
>    </member>
>    <member>
>     <name>author_url</name>
>
>     <value>
>      <string>http://www.golen.net/blog</string>
>     </value>
>    </member>
>    <member>
>     <name>author_email</name>
>     <value>
>      <string>tim at golen.net</string>
>
>     </value>
>    </member>
>   </struct>
>  </value>
> </param>
> </params>
>
>
> And all that is encoded the way they discuss it at
> http://devzone.zend.com/article/1307. I'll take a look at the IXR library
> and see if that does any better of a job. I appreciate all of your help and
> suggestions with this! Once I get the PHP library built, I think it would be
> an invaluable resource to post on the Wordpress site somewhere.
>
> Tim
>
> On Tue, Jun 15, 2010 at 12:37 PM, Joseph Scott <joseph at josephscott.org>wrote:
>
> > There are 2 different "levels" of libraries for the the WP XML-RPC
> > APIs.  First, lower level XML-RPC only APIs.  These take care of all
> > the XML-RPC work, but don't know anything about the specific methods
> > that WordPress provides.  For that layer I recommend the PHP IXR
> > library, which is what WordPress uses.
> >
> > The next level up are libraries both take care of the XML-RPC details
> > and know about the various methods that WP exposes.  I've seen some
> > Perl libraries that fit into this category, but I haven't seen much in
> > the of PHP ones.
> >
> > On Tue, Jun 15, 2010 at 11:51 AM, Tim Golen <tim at golen.net> wrote:
> > > Is there already an existing PHP library for the Wordpress API? I'm still
> > > running into problems and don't need to reinvent the wheel if it's
> > already
> > > been done. The MetaWeblog API mentions a PHP library, but it comes up
> > with a
> > > 404 error, and the MetaWeblog site hasn't been updated since 2003.
> > > Errors like "Invalid Data: Please go back and try again." when trying to
> > do
> > > something rather simple like create a comment can get really frustrating.
> >
> >
> >
> > --
> > Joseph Scott
> > joseph at josephscott.org
> > http://josephscott.org/
> > _______________________________________________
> > wp-xmlrpc mailing list
> > wp-xmlrpc at lists.automattic.com
> > http://lists.automattic.com/mailman/listinfo/wp-xmlrpc
> >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.automattic.com/pipermail/wp-xmlrpc/attachments/20100615/a246250a/attachment-0001.htm>


More information about the wp-xmlrpc mailing list