如果我沒有弄錯(我肯定可能是),你不能做一個查詢,就像你試圖用Wordpress的內置函數一樣。
你可以做的是在你的functions.php文件(其中一個存儲主題的自定義函數)中有一個函數,該函數接受一個參數數組數組,並通過每次循環將循環添加到數組中。我認爲get_posts()將是最好的函數,因爲它返回一個數組中的帖子而不需要循環。
function query_posts_multiple($arrArgs)
{
if (!is_array($arrArgs)) return false; // Prevents warnings and fatal errors.
$posts = array();
foreach ($arrArgs as $args)
{
$posts = array_merge($posts, get_posts($args));
}
return $posts;
}
對於args數組,這裏有一個例子:
$args = array();
$args[] = array(
'numberposts' => 7,
'tag' => "50",
);
你只用在你的主題一個foreach()循環。您可以使用$ post->列時尚訪問數據。
$posts = get_posts_multiple($args);
foreach ($posts as $post)
{
// call all the $post->COLUMNs your heart desires
}
unset($posts); // Delete that variable just to be safe.
要限制帖子的數量,只需保持計數並在達到特定數量時停止循環。要隨機化陣列,可以使用shuffle()。
這可能是這樣做的一個非常,非常骯髒的方式,責怪我極度疲倦......
洛根
感謝洛根。這讓我走出了我有限的PHP舒適區。一位朋友確認你的建議確實很骯髒;) 令人驚訝的是,無法在同一部分調用自定義帖子和過濾「常規」帖子。似乎很基本。 – David 2011-03-07 22:34:46
我同意。實際拉取帖子的查詢相當簡單,但爲什麼Wordpress決定忽略這些功能超出了我的想象。但是,他們在那裏設計的查詢意識並試圖限制對數據庫的查詢數量,所以也許這就是原因。誰知道。 – 2011-03-08 15:29:18