問題描述

我想知道如何/如果我可以訪問超過 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。