php - 如何在本周和下周按日期对帖子进行排序
问题描述
因此,对于 wordpress 网站,我有一个日历页面,我想在其中显示自定义帖子类型的日期。我想实现以下目标:https ://jsfiddle.net/8vcyk3h5/
$today = date('Ymd');
$args = array(
'post_type' => 'events',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'date',
'compare' => '>=',
'value' => $today
)
),
'meta_key' => 'datum',
'orderby' => 'meta_value',
'order' => 'ASC'
);
$posts_array = get_posts($args);
if($posts_array) {
foreach($posts_array as $post) {
$id = $post->ID;
$firstWeekDay = date('Ymd', strtotime('monday this week'));
$lastWeekDay = date('Ymd', strtotime('monday next week'));
$event = get_field('datum', $id);
if($event > $firstWeekDay && $event < $lastWeekDay) {
echo 'all this weeks events!';
}
}
}
这就是我到目前为止所拥有的。我将如何实现JSFiddle示例?
因此,我需要将本周发生的事件与下周发生的事件和未来的事件放在一个单独的 div 中。
解决方案
这可以更紧凑,但是这可能是什么?希望有所帮助
我没有测试错误,但重点是:
制作一个要显示的事件数组,然后用几个循环显示它们。
$today = date('Ymd');
$args = array(
'post_type' => 'events',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'date',
'compare' => '>=',
'value' => $today
)
),
'meta_key' => 'datum',
'orderby' => 'meta_value',
'order' => 'ASC'
);
$posts_array = get_posts($args);
if($posts_array) {
$lists = array();
foreach($posts_array as $post) {
$id = $post->ID;
$firstWeekDay = date('Ymd', strtotime('monday this week'));
$lastWeekDay = date('Ymd', strtotime('monday next week'));
$event = get_field('datum', $id);
if($event > $firstWeekDay && $event < $lastWeekDay) {
//echo 'all this weeks events!';
$lists['thisweek'][] = $id;
} elseif($event > date('Ymd', strtotime('monday next week')) && $event < date('Ymd', strtotime('+1 weeks monday'))) {
//echo 'all next weeks events!';
$lists['nextweek'][] = $id;
} elseif($event > date('Ymd', strtotime('+1 weeks monday'))) {
//echo 'all future events!';
$lists['future'][] = $id;
}
}
echo "<ul>";
foreach($lists['thisweek'] as $post){
echo "<li>".$post->TITLE."</li>";
}
echo "</ul>";
echo "<ul>";
foreach($lists['nextweek'] as $post){
echo "<li>".$post->TITLE."</li>";
}
echo "</ul>";
echo "<ul>";
foreach($lists['future'] as $post){
echo "<li>".$post->TITLE."</li>";
}
echo "<ul>";
}
推荐阅读
- javascript - 在 NextJS 项目中在哪里插入 sitemap.xml 文件?
- docker - 容器化 AWS Lambda:python 处理程序无法访问 /home/app(但它可以访问 /tmp)
- node.js - Travi-ci.com 可以读取环境变量,但 travs-ci.com 不能
- javascript - 想要添加任何一个类,或者添加字体样式:斜体,到 map() 中的特定项目
- ios - LazyVStack ScrollView 性能
- python - pandas 和 nan 组团
- javascript - 强制代码暂停执行,直到带有承诺的函数结束执行 - javascript
- git - Git Ahead SSH 错误 - 无法克隆到“我的目录” - 找不到 SSH 身份文件
- sql-server - 我的 sqlcmd bcp 命令不断返回“'.' 附近的语法不正确。”
- c++ - DirectX11 如何将数据写入纹理并在像素着色器中读取?