【发布时间】:2010-10-14 13:48:41
【问题描述】:
我没有在 WordPress codex 中找到任何 xmlrpc 方法调用来执行此操作。 我可以通过 metaWeblog.getRecentPosts 获取所有帖子并提取 ID,但我不知道博客中帖子的数量。
【问题讨论】:
我没有在 WordPress codex 中找到任何 xmlrpc 方法调用来执行此操作。 我可以通过 metaWeblog.getRecentPosts 获取所有帖子并提取 ID,但我不知道博客中帖子的数量。
【问题讨论】:
没有获取所有帖子的 XML-RPC 方法,主要是因为这可能会导致严重的性能问题(想象一个有 5,000 个帖子和高流量的博客......试图解析 所有内容的列表 会导致严重的服务器延迟)。
您可以使用常用的 WordPress 方法获得最接近的方法是使用 getRecentPosts 调用:blogger.getRecentPosts 和 metaWeblog.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.postCount 和 myNamespace.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 的列表。
【讨论】: