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 转发器按日期子字段排序的主要内容,如果未能解决你的问题,请参考以下文章

ACF 从父页面获取转发器的子字段

基于 ACF 转发器子字段自定义分类法查询帖子

php 具有acf转发器子字段的facetwp布局构建器

ACF 更新字段到嵌套转发器字段

从 ACF 转发器字段中获取 meta_key

获取存储在 DB 中的转发器子字段的所有值