【问题标题】:Wordpress API Get Posts by categoryWordpress API 按类别获取帖子
【发布时间】:2014-04-09 16:12:52
【问题描述】:

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

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

【问题讨论】:

    标签: wordpress xml-rpc


    【解决方案1】:

    我最终通过使用可选的过滤器参数成功地完成了这项工作。根据文档,这些是以下可接受的过滤器参数。

    结构过滤器:可选。 字符串 post_type 字符串 post_status 整数 整数偏移 字符串排序 字符串顺序

    出于好奇,我通过在 getposts 方法下将以下内容添加到 class-wp-xmlrpc-server.php 发送了一个“类别”过滤器

    if(isset($filter['category']))
         $query['category'] = absint($filter['category']);
    

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

    它成功了! Wordpress 似乎从他们的文档中遗漏了一些过滤器参数。

    您还可以通过传递“s”作为过滤器来发送搜索过滤器

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

    【讨论】:

      【解决方案2】:

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

      不过,您最好还是在stackexchange wordpress site 上提问。

      【讨论】:

      【解决方案3】:

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

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

      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
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-23
        • 2020-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多