我有一个类别名称“notes”,我需要在循环的每个页面上显示最多10个音符,以及最多4个常规帖子。
它们都应按日期排序。
即。我在1小时前发布了1个音符,note A
和另一个音符,note b
,5小时前,我还发布了帖子,post A
和post B
2小时前。在我的循环中,我希望看到note A
,post A
,post B
,note B
。
我希望它足够清楚。
我正在尝试使用两个自定义WP_Queries来执行此操作,但由于全局$post
,我很难使用它们。
任何帮助都可以! 感谢
答案 0 :(得分:0)
好吧,如果有人有兴趣,我就这样做了:
<?php
function elis_sortbydate ($a, $b) {
$time_a = strtotime($a->post_date);
$time_b = strtotime($b->post_date);
if ($time_a == $time_b) return 0;
return ($time_a > $time_b) ? -1 : 1;
}
$query = array_merge(array('cat' => 67, 'posts_per_page=10'), $wp_query->query);
$notes_query = new WP_Query($query);
$query = array_merge(array('cat' => -67, 'posts_per_page=4'), $wp_query->query);
$posts_query = new WP_Query($query);
if ($notes_query->have_posts() and $posts_query->have_posts()) {
$all_posts = array_merge($notes_query->posts, $posts_query->posts);
usort($all_posts, "elis_sortbydate");
foreach ($all_posts as $post) { ... }
}
生成的$all_posts
数组按日期排序(从高到低)