如何解决WP_Query:按特定顺序显示特定时间的帖子
我想按照我主页上 post__in
下指定的顺序显示每篇帖子一天。这意味着首先应显示 ID 为 3 的帖子,直到 23:59:59,然后显示 ID 为 1 的帖子 24 小时,直到 23:59:59,然后显示 ID 为 2 的帖子,依此类推。当所有帖子都显示出来后,它应该从头开始。有没有人知道如何实现这一点?
function post_of_the_day( $query_args) {
global $post;
$query_args = array(
'post_type' => 'example_post_type','posts_per_page' => 1,'post__in' => array(3,1,2,4,7,6,5)
);
return $query_args;
}
解决方法
如果您只想在一周中的每一天发布一篇文章,您可以使用 PHP 的 date() function
和 'w'
格式字符串。它返回 0
为星期日,1
为星期一,6
为星期六,等等。然后您可以使用它作为索引从数组中找到您想要的一个帖子 ID,并使用WP_Query()
arguments
'p'
参数
function post_of_the_day( $query_args ){
$post_ids = array( 3,1,2,4,7,6,5 ); // List of available ID's
$id_index = absint( date('w') ); // 0-6 based on day of the week
$query_args = array(
'p' => $post_ids[$id_index],// 3 on Sun,1 on Mon,5 on Sat
'post_type' => 'example_post_type' // Your post type
);
return $query_args;
}
如果您只需要一个,则不需要使用 post__in
查询所有 7 个帖子。通常,您希望尝试检索尽可能少的信息,以提高速度、优化和易于维护。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。