問題描述

我已經閱讀了關於 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。