WordPress XML-RPC Endpoint Validator

WordPress uses the XML-RPC remote publishing interface in order to provide a standardized way to transfer data between 3rd party clients, like mobile/desktop apps, and the core of the CMS. These 3rd party clients may ask for something like an XML-RPC (or API) endpoint, which will usually is your blog domain followed by “xmlrpc.php". So, for example, if your site was at daniloercoli.wordpress.com, your endpoint would be:

http://daniloercoli.wordpress.com/xmlrpc.php or https://daniloercoli.wordpress.com/xmlrpc.php

The Endpoint requires username/password, this is the same username and password that you use to login to WordPress, and it’s secure like the browser login.

Themes and Plugins can interact and change the behavior of the XML-RPC Endpoint, by adding new methods, or modifying the response document. There are actually a lot of plugins that interact with it in some way, but unfortunately, plugins and themes could break the XML-RPC endpoint,  or invalidate the XML response document. When I need to reply to a question about the EndPoint that’s not working on a self-hosted installation of WordPress I usually reply with the following words:

Did you try with the default theme and with no active plugins?

Trying it with the default theme and plugins disabled will help pin down where the problem is. If everything works then you go back and enable your theme and then try it again. If everything still works then you go back and activate each plugin one at a time until you find the one that is causing the breakage.

The Validator
Since my team and I usually spend a lot of time replying to questions on issues on the XML-RPC endpoint of WordPress sites, I’ve decided to write a web tool that can be used to easily test the Endpoint. This tool should speed up our work, and will give to users a simple way to test the endpoint of their sites. I wrote this tool in PHP (https://github.com/daniloercoli/WordPress-XML-RPC-Validator), by using WordPress as framework, and for simplicity in this first release it’s a plugin that adds a page to your site. That page embeds the XML-RPC validator. It does some XML-RPC calls to your blog, checks the response documents, and in case of errors gives back hints on how to fix the issue. At this moment it’s just an experiment, no fancy UI there, but I will probably improve it over the time. A live version of the validator is available here.  Please, contribute to the project :)

 

Resources

8 thoughts on “WordPress XML-RPC Endpoint Validator

  1. Muhammad Baiquni

    Hello,

    If I got error code when validated the xml-rpc of my site, what should I do?

    I was trying to reinstalled fresh wordpress with default themes and no plugins activated, but the xmlrpc.php still error even in direct with browser it seems ok.

    my web are speagames.com, missrifka.com, researchalgae.com, and melsupdate.com

    Could you give me any insight or how could I fix this problem.

    Thank you

    Reply
    1. Danilo Post author

      I checked your site with the validator, and seems that the XML-RPC requestes are blocked by the server, or by the host provider. Make sure the XML-RPC protocol is enabled on your sites ( Go to Admin -> Settings; Writing; Remote Publishing and check the XML-RPC box), and if that doesn’t help I suggest you to contact the host provider help asking them if their setup is blocking the XML-RPC protocol. ‘mod_bwlimited/1.4′ could be the curlprit.

      Reply
  2. Vektorigo

    Hi Danilo,
    I have two wordpress sites on same server and one of them has a successful xml-prc feedback and the other one has not.
    golondon.hu is seem to be fine but golondonblog.com doesn’t. I have looked the log files but I couldn’t get to the end, what causing this issue. Can you please advise?

    Reply
    1. Vektorigo

      Ok, I have deleted my whole Blog from the FTP on GoLondonBlog.com and reinsdtalled WordPress and now it works. I will find out what’s causing the issue when I do import my Categories, users, post from IranyLondonBlog.hu where this is also not working… thanks anyway for building this Tool!

      Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s