After half a year of complaining about the state of XML-RPC in WordPress, I’ve tried to get the stars aligned for some significant improvements in the next release (3.4). The 3.4 development cycle has just begun after the release of 3.3 last week, and I am currently on winter break until spring semester classes start on January 9. Some of the core developers have shown interest in seeing XML-RPC improved, so I hope to make their job easier by doing the legwork on patches.
As of today (12/22/2011), there are 72 open tickets in the WordPress core Trac XML-RPC component. While I’d love to see them all fixed, there is limited amount of time and so we must prioritize. This post represents my current priorities and plans.
The first area of focus will be refining the work from the WordPress Web Services 2011 Google Summer of Code project, which resulted in the wp-webservices plugin. These new methods expand the wp.* method namespace and deprecate the usage of metaWeblog/MT/Blogger API methods for common tasks.
I’ll first release a new plugin based on wp-webservices but with updated implementations. The goal is to allow people to test the new methods on 3.3 or earlier, and to make it easier than applying two dozen patches against trunk. I’ll also have a new branch of python-wordpress-xmlrpc that can talk to the new methods.
(Note: priorities are my opinion, not necessarily that of WordPress core team)
The remainder of the tickets are a mix of feature requests and bugs. Many already have patches, though they may need to be updated to apply against trunk. An example of some easy fixes that would make the lives of the mobile app developers (and other XML-RPC users) so much better:
|18566||Expose discussion settings on XML-RPC||has-patch|
|18126||Expose image options on XML-RPC||has-patch|
|17981||wp.getComments should work for non-admins||has-patch|
|18683||wp.getMediaLibrary doesn’t return attachment ids||has-patch|
|17109||Add more hooks for pluggability||has-patch|
|13917||wp.uploadFile cannot be attached to a post||has-patch|
|17132||Expose template/active_plugins on XML-RPC||has-patch|
|10933||Expose custom more text on XML-RPC||has-patch|
|19027||Return modification date on mw.getPost/mw.getRecentPosts||has-patch|
Of the 51 open non-GSoC XML-RPC tickets, 34 currently have patches.
My first task is to get a release of the improved wp-webservices plugin out the door. I started work on it this summer when the GSoC project was winding down, and I’ll spend the next few days doing some more refining. My goal is to have code available by Tuesday, and updated patches on all the GSoC tickets by Wednesday.
Starting this weekend I’ll also start idling in #wordpress-dev again, where I’ll be pestering nacin, westi and josephscott about triaging the old tickets and getting some of the low-hanging fruit committed.