Wordpress API按类别获取帖子

时间:2014-04-09 16:12:52

标签: wordpress xml-rpc

是否可以按类别获取所有帖子?

http://codex.wordpress.org/XML-RPC_WordPress_API/Posts

3 个答案:

答案 0 :(得分:3)

我设法通过使用可选的filters参数来实现这一点。根据文档,这些是以下可接受的过滤器参数。

struct filter:可选。     string post_type     string post_status     int号     int offset     string orderby     字符串顺序

出于好奇,我发送了一个'类别'通过在getposts方法

下的class-wp-xmlrpc-server.php添加以下内容进行过滤
if(isset($filter['category']))
     $query['category'] = absint($filter['category']);

在调用wp_get_recent_posts{$query);方法之前

它有效!好像Wordpress从文档中遗漏了一些过滤参数。

您也可以通过传递搜索过滤器来发送搜索过滤器。作为过滤器

$query['s'] = $filter['s'];

答案 1 :(得分:1)

看起来没有预先过滤的方法。您可能需要运行API调用并在之后进行过滤。

你可能最好不要问stackexchange wordpress site

答案 2 :(得分:1)

毕竟这很容易。从这个WPSE answer,我们了解到我们可以扩展XML-RPC方法并创建我们自己的my.getPosts,就像这个William P. Davis的展示'extension code on GitHub { {3}}

基本上,使用以下代码创建一个插件,并调整接受的参数以生成输出:

add_filter( 'xmlrpc_methods', 'add_my_xmlrpc_methods' );

function add_my_xmlrpc_methods( $methods ) {
    $methods['bdn.getPosts'] = 'bdn_xmlrpc_get_posts';
    return $methods;
}

function bdn_xmlrpc_get_posts( $args ) {
    # Adapt wp.getPosts to your needs
    # https://core.trac.wordpress.org/browser/tags/3.9/src/wp-includes/class-wp-xmlrpc-server.php#L1553
}