問題描述
我已經閱讀了關於 SE 的一些 of 問題,但是我仍然無法確定 wrt 的確切用法。可以這麼說,我可能會使用 WP_Query 作為大部分次級迴圈,並且只有在需要在陣列中返回的結果時才使用 get_posts,或者換句話說,兩個陣列 vs 物件返回的主要區別或者還有其他一些主要因素我應該注意嗎?
最佳解決方案
get_posts& WP_Query
您可以將 get_posts()視為細長的 WP_Query 。其實看看 source:
//... prepares query array $r
$get_posts = new WP_Query;
return $get_posts->query($r);
get_posts()使用 WP_Query,但只返回一系列的帖子 – 沒有更多。此外,它設定:
$r['no_found_rows'] = true;
通常 (預設情況下,使用 WP_Query 物件) – WordPress 查詢總共有多少個帖子 – 即使您僅在前 10 個之後。它可以執行分頁。所以 get_posts()實際上 (稍微) 更快 (也忽略了貼上的帖子) 。
哪個使用…
如果你只需要一個陣列的帖子,並且不需要查詢物件 – 使用 get_posts()。否則,如果您確實需要訪問查詢物件方法,或者分頁或貼上帖子在頂部,則應使用 WP_Query 。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。