如果我没有弄错(我肯定可能是),你不能做一个查询,就像你试图用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