合并两个循环的结果

时间:2013-12-12 作者:SBM

我目前在一个页面上运行这两个循环

$related = p2p_type( \'artist_to_song\' )->my_get_related( get_queried_object() );
$features = p2p_type( \'song_to_feature\' )->my_get_related( get_queried_object() );


if ( $related->have_posts() ) : 
   while ( $related->have_posts() ) : $related->the_post();
      //content
   endwhile;
   wp_reset_postdata();                             
endif;

if ( $features->have_posts() ) : 
   while ( $features->have_posts() ) : $features->the_post();
      //content
   endwhile;
   wp_reset_postdata();                             
endif;
是否可以将这些循环的结果合并为一个,以便所有帖子都按时间顺序列出,而不是$related 之后是$features.

1 个回复
最合适的回答,由SO网友:David 整理而成

是的,是的。首先,必须将结果合并到一个数组中:

$all_posts = array_merge( $related->posts, $features->posts );
现在,让我们按日期对数组项进行排序:

usort( $all_posts, function( $a, $b ) {

    return strcmp( $b->post_date, $a->post_date );
} );
最后,执行循环:

global $post;
foreach ( $all_posts as $post ) {
    setup_postdata( $post );
    // use the template tags here: the_title(), the_content(),…
}
wp_reset_postdata();

结束

相关推荐

Add filter to comments loop?

我正在制作一个插件,用于存储推荐人数据以供评论。我已经创建了数据库表,并且在进行注释时正确存储了数据。现在,我想为每个注释在注释块上附加一个自定义div。如何向注释循环添加过滤器?我想说“如果这个评论ID在我的表中有一个推荐人,那么在我的特殊div中打印出推荐人”。我可以自己写函数,我只需要在哪里注入函数的帮助。

合并两个循环的结果 - 小码农CODE - 行之有效找到问题解决它

合并两个循环的结果

时间:2013-12-12 作者:SBM

我目前在一个页面上运行这两个循环

$related = p2p_type( \'artist_to_song\' )->my_get_related( get_queried_object() );
$features = p2p_type( \'song_to_feature\' )->my_get_related( get_queried_object() );


if ( $related->have_posts() ) : 
   while ( $related->have_posts() ) : $related->the_post();
      //content
   endwhile;
   wp_reset_postdata();                             
endif;

if ( $features->have_posts() ) : 
   while ( $features->have_posts() ) : $features->the_post();
      //content
   endwhile;
   wp_reset_postdata();                             
endif;
是否可以将这些循环的结果合并为一个,以便所有帖子都按时间顺序列出,而不是$related 之后是$features.

1 个回复
最合适的回答,由SO网友:David 整理而成

是的,是的。首先,必须将结果合并到一个数组中:

$all_posts = array_merge( $related->posts, $features->posts );
现在,让我们按日期对数组项进行排序:

usort( $all_posts, function( $a, $b ) {

    return strcmp( $b->post_date, $a->post_date );
} );
最后,执行循环:

global $post;
foreach ( $all_posts as $post ) {
    setup_postdata( $post );
    // use the template tags here: the_title(), the_content(),…
}
wp_reset_postdata();

相关推荐

Increase offset while looping

我正在编写一个自定义帖子插件,它将自定义帖子分组显示为选项卡。每组4个岗位。是否可以编写一个偏移量随每次循环而增加的查询?因此,结果将是:-第一个查询显示从1到4的帖子-第二个查询显示从5到8的帖子-第三个查询显示从9到12的帖子等。 <div class=\"official-matters-tabs\"> <?php $args = array(\'post_type\' => \'official-matters\', \'showp