问题描述

我想知道如何/如果我可以访问超过 WordPress 设置中定义的最新的 X 帖子。我看过通过 RSS 迁移所有博客内容的插件,还没有戳到他们看到他们的方法。

基本上我管理了几百个 WordPress 博客,我正在为我的客户建立一个通讯生成器。他们希望能够选择几个帖子,并在摘要主体中显示摘录。这些网站分布在多个服务器上,通讯生成器正在建立在我们的 CRM 之上,因此直接的数据库查询将是困难的。 RSS 将是最干净的,但我似乎无法弄清楚如何一次访问 10 个以上 (当管理员设置为 10 时) 。

有任何想法吗?

最佳解决方案

Codex 有关于如何使用 post_limits 过滤器来覆盖 admin 中设置的 Feed 的示例代码段。

if (isset ($query->query_vars['feed']) and ($query->query_vars['feed'] == 'ics'))
    add_filter('post_limits','__return_empty_string');

http://codex.wordpress.org/Function_Reference/query_posts#Usage_Tips

次佳解决方案

获取您的帖子的一种方法是调用您的通讯生成器中的 rss feed 的不同页面。这是一种安全的方法,不需要更新您的各种 Wordpress 安装:

yourwebsite.com/feed – > 获得最后 10 个职位

yourwebsite.com/feed/?paged=2 – > 获得下 10 个职位

等等。

第三种解决方案

不幸的是,在大多数社区中,你一直在努力做到这一点。我听到你要求的是:

  • 远程检索的方式超过默认数量 (最近的帖子)

  • 可能检索网站的所有发布的帖子

  • 没有与网站本身的直接互动 (使用 RSS)

这是通常用于从博客中删除内容并在未经原作者许可的情况下重新发布的做法。这就是为什么我说这通常是皱眉的。大多数博客作者为开发出优秀的内容投入了大量的时间和精力,因此,让第三方轻松利用自己的努力,将自己的网站添加到 SEO 的信用是… … 很好。

也就是说,我会假设你有合法的理由从 700 多个站点上刮下内容。在这种情况下,我会推荐一个单独的程序方法 – 而不是 RSS 。如果您对所有这些网站 (即他们是您的网站而不是其他人) 拥有合法的登录信息,您可以使用 WordPress 内置 XML-RPC 功能来获取内容。

使用内置 XML-RPC 库将请求传递给 metaWeblog.getRecentPosts,指定博客的 ID(通常为 0,单个站点为 0,但在 multi-site 中可能不同),WordPress 用户名,WordPress 密码以及要提取的帖子数 (设置为到-1 来接收它们) 。

另一个站点将使用 (相当大的)XML 文件进行响应,该文件包含可以使用所需内容的内容。这些都可以在幕后进行,metaWeblog.getRecentPosts 请求会比 RSS 提供更多的信息 (包括自定义字段,这对您来说可能很重要) 。

第四种方案

如果 memory 服务,通过-1 作为帖子的数量具有相同的效果。不完全确定如何将它扔入 URL 。

除此之外,如果您真的拥有 700 多个网站,请考虑将 svn 更新或 git 从稳定的分支中拉出,每天从私有存储库中… 结合每日 http 呼叫 wp-admin /upgrade.php 。升级或调整您的网站时,它会节省很多麻烦,因为它会自动完成。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。