Отображать таксономию ACF в порядке множественного выбора - PullRequest
0 голосов
/ 17 января 2020

Используя ACF, у меня есть поле Таксономия с Multi Select и Stylized 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>';
                        }
                        ?>

1 Ответ

0 голосов
/ 22 января 2020

Разобрался. Поскольку поле сохранило правильную сортировку в поле администратора, я знал, что данные заказа были сохранены где-то. Я посмотрел в базе данных условия поста и связанные с ним данные. Заказ был сохранен там. Вместо использования get_the_terms для l oop я использовал get_post_meta. Это дало мне массив с терминами идентификаторов в правильном порядке. Затем я получил термин name с использованием этого идентификатора в пределах foreach l oop. Это дало мне имена таксономии в заказе из стилизованного поля множественного выбора.

                        <?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>';

                        }
                        ?>
...