WordPress在3.4以后,增加了大量的XML-RPC API,看来是有心要替代以前Blogger, MovableType, metaWeblog API混用的情况,不过接口还是不够充足,比如:如何获取指定分类的文章列表
反复google没有找到解决办法,只好查看Wordpress的源码,没想到出奇的容易
WordPress XML-RPC接口是由wordpress/xmlrpc.php处理,xmlrpc.php又调用wordpress/wp-includes/class-wp-xmlrpc-server.php
WordPress中的wp.getPosts已经包括filter参数,用来过滤post_style,post_status,wp.getPosts的实现在class-wp-xmlrpc-server.php的wp_getPosts函数,wp_getPosts又调用wp_get_recent_posts,查看wp_get_recent_posts的定义,发现其中包含category的参数,只是在wp_getPosts中没有调用,所以在wp_get_recent_posts调用前添加如下代码:
if ( isset( $filter[‘category’] ) )
$query[‘category’] = absint( $filter[‘category’] );
注意:category这个参数对应的是wp.getTerms获取的term_id,如果上代码所示,类型是整型
虽然这个办法需要改代码,但这是目前找到的最简单的办法