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