首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过xmlrpc请求从WordPress博客获取所有帖子的ID

通过xmlrpc请求从WordPress博客获取所有帖子的ID
EN

Stack Overflow用户
提问于 2010-10-14 21:48:42
回答 1查看 2.9K关注 0票数 1

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-14 23:36:47

不存在获取所有帖子的XML-RPC方法,主要是因为这可能会导致严重的性能问题(想象一个有5000篇帖子和高流量的博客……尝试解析所有内容的列表将导致一些严重的服务器延迟)。

对于常用的WordPress方法,最接近的方法是getRecentPosts调用:blogger.getRecentPostsmetaWeblog.getRecentPosts ( MetaWeblog调用实际上只是Blogger调用的别名)。

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

代码语言:javascript
复制
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系统添加两个新的调用:myNamespace.postCountmyNamespace.postIDList。您可以远程调用这些函数来分别返回已发布帖子的计数和已发布帖子ID的列表。

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

代码语言:javascript
复制
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的列表。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3933823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档