【问题标题】:Get all posts' IDs from WordPress blog via xmlrpc request通过 xmlrpc 请求从 WordPress 博客获取所有帖子的 ID
【发布时间】:2010-10-14 13:48:41
【问题描述】:

我没有在 WordPress codex 中找到任何 xmlrpc 方法调用来执行此操作。 我可以通过 metaWeblog.getRecentPosts 获取所有帖子并提取 ID,但我不知道博客中帖子的数量。

【问题讨论】:

    标签: wordpress xml-rpc


    【解决方案1】:

    没有获取所有帖子的 XML-RPC 方法,主要是因为这可能会导致严重的性能问题(想象一个有 5,000 个帖子和高流量的博客......试图解析 所有内容的列表 会导致严重的服务器延迟)。

    您可以使用常用的 WordPress 方法获得最接近的方法是使用 getRecentPosts 调用:blogger.getRecentPostsmetaWeblog.getRecentPosts(MetaWeblog 调用实际上只是 Blogger 调用的别名)。

    也就是说,您可以创建自己的方法,该方法返回已发布帖子的计数或已发布帖子的 ID 列表。只需创建一个快速插件以连接到 XML-RPC 系统以添加您的端点和方法:

    function xml_add_method( $methods ) {
        $methods['myNamespace.postCount'] = 'get_post_count';
        $methods['myNamespace.postIDList'] = 'get_post_id_list';
        return $methods;
    }
    add_filter( 'xmlrpc_methods', 'xml_add_method' );
    

    该代码块将为您的 XML-RPC 系统添加两个新调用,myNamespace.postCountmyNamespace.postIDList。您可以远程调用它们以分别返回已发布帖子的计数和已发布帖子 ID 的列表。

    您还需要定义将处理请求的 PHP 函数 - 所有 XML-RPC 系统都会将远程请求路由到返回数据的内部 PHP 函数:

    function get_post_count( $args ) {
        global $wpdb;
    
        ... code that retrieves the total count of published posts from the database ...
    
        return $count;
    }
    
    function get_post_id_list( $args ) {
        global $wpdb;
    
        ... code that retrieves a list of published posts from the database ...
    
        return $postlist;
    }
    

    就是这样。将所有代码合并到一个自定义插件中,将其放置在您的站点中,激活它,您现在可以通过 XML-RPC 获取已发布帖子的计数或已发布帖子 ID 的列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-21
      • 2010-12-16
      • 2017-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      相关资源
      最近更新 更多