ACF 转发器按日期子字段排序
Posted
技术标签:
【中文标题】ACF 转发器按日期子字段排序【英文标题】:ACF repeater order by date sub field 【发布时间】:2020-09-20 20:17:09 【问题描述】:我一直在尝试按日期顺序对我的 ACF 子字段进行排序,但是它工作得并不完全正确。它应该去
2020 年 1 月 6 日 20/05/2020 2020 年 14 月 5 日 2020 年 10 月 5 日
但它目前还在
2020 年 1 月 6 日 2020 年 10 月 5 日 2020 年 14 月 5 日 20/05/2020
这是我的代码,谁能告诉我哪里出错了?
<section class="news-updates">
<?php
$repeater = get_field('news_repeater');
$order = array();
if( $repeater ):
foreach( $repeater as $i => $row )
$eventdate = $row['news_date'];
$order[ $i ] = $eventdate;
array_multisort( $order, SORT_ASC, $repeater );
?>
<table class="news">
<?php foreach( $repeater as $i => $row ): ?>
<?php
$eventdate = $row['news_date'];
?>
<div class="news-item">
<div class="news-date"><?php echo $eventdate; ?></div>
<div class="news-content"><?php echo $row['description']; ?></div>
</div>
<?php endforeach; ?>
</table>
<?php
?>
<?php endif; ?>
</section>
我查遍了整个互联网,但似乎无法弄清楚。
【问题讨论】:
“有人能告诉我哪里出错了吗?” - 您正在尝试以一种格式对日期进行排序,这种格式一开始就不是“可排序的”。排序是通过对此处的两个项目进行字符串比较,从左到右逐个字符进行的。 【参考方案1】:你试过了吗
array_multisort( $order, SORT_ASC, $repeater );
【讨论】:
以上是关于ACF 转发器按日期子字段排序的主要内容,如果未能解决你的问题,请参考以下文章