我正试图制作一个循环,从一个类别中获取最新的25篇帖子,从另一个类别获取最新55篇帖子,它们需要在同一个循环中,并且帖子在同位素过滤系统中,当它处于"all"时,它需要按日期顺序显示所有类别,而不是按类别类型>发布日期,这样做有诀窍吗?
谢谢,哈利。
编辑:以下是我当前的get_posts循环;
<?php
global $post;
$myposts = get_posts('cat=10,11,49&numberposts=50');
foreach($myposts as $post) :
setup_postdata($post);
$cat_name = '';
$category = get_the_category();
$cat_name = $category[0]->slug;
?>
<?php endforeach; ?>
我尝试了一些合乎逻辑的东西,比如;
$myposts = get_posts('cat=10,49&numberposts=50', 'cat=11&numberposts=50');
但这只是从第10类和第49类返回的帖子。
我想也许这样的东西可以工作,但需要正确的语法;
$myposts11 = get_posts('cat=11&numberposts=50');
$myposts1049 = get_posts('cat=10,49&numberposts=50');
$myposts = $myposts1049 + $myposts11;
您尝试的问题是将两个post数组添加在一起,就好像它们是数字一样;
$myposts = $myposts1049 + $myposts11;
您应该使用array_merge
将两个数组合并为一个数组,然后循环使用;
$myposts = array_merge( $myposts1049, $myposts11 );
编辑
看看Wordpress StackExchange网站,Otto在这里回答了一个非常相似的问题;
https://wordpress.stackexchange.com/questions/130009/how-to-merge-two-queries-together#answer-130055
在WP_Query
对象中使用新数组之前,还使用了array_unique
来消除重复。