按多选顺序显示 ACF 分类法

问题描述 投票:0回答:2

使用 ACF,我有一个具有多选和风格化 UI 的分类字段。

我通常会选择 2 或 3 个税项。

我可以使用拖放来排列它们。太棒了。

在前端,数组不反映我放置的税收顺序/排序。

非常简单的代码。我做错了什么?

                        <?php

                        $values = get_the_terms( $post->ID, 'languages' );

                        if ( $values ) {
                            echo '<tr class="item"><td>';

                                        foreach ( $values as $value ) {
                                            echo $value->name . '<br/>';
                                        }

                            echo '</td></tr>';
                        }
                        ?>
php arrays wordpress advanced-custom-fields acfpro
2个回答
1
投票

想通了。 因为该字段在管理字段中保存了正确的排序,所以我知道订单数据保存在某个地方。我在数据库中查看了该帖子的条款和相关数据。订单保存在那里。我没有使用 get_the_terms 进行循环,而是使用 get_post_meta。这给了我一个带有正确顺序的术语 ID 的数组。然后我在 foreach 循环中使用该 ID 获得了术语名称。这给了我按样式多选字段的顺序排列的分类名称。

                        <?php

                        $values = get_the_terms( $post->ID, 'languages' );
                        if ( $values ) {
                            echo '<tr class="item"><td>';

                            $values = get_post_meta( $post->ID, 'languages' );

                            foreach ( $values as $value ) {
                                foreach ( $value as $item ) {
                                    $term = get_term( $item )->name; 
                                    echo $term .'<br/>';    
                                }
                            }

                            echo '</td></tr>';

                        }
                        ?>

0
投票

我知道这是一个旧线程,但对于那些寻找 ACF 版本的人来说:

<?php $terms = get_terms( array(
    'taxonomy' => '[YOUR TAXONOMY HERE]',
    'hide_empty' => false,
    'include' => $ids,
    'orderby' => 'include', // Order by your include
) );
//Rest of your code
?>
© www.soinside.com 2019 - 2024. All rights reserved.