WordPress XML-RPC API添加获取指定分类的文章列表的方法

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,如果上代码所示,类型是整型

虽然这个办法需要改代码,但这是目前找到的最简单的办法

Leave a Reply

Your email address will not be published. Required fields are marked *