使用 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>';
}
?>
想通了。 因为该字段在管理字段中保存了正确的排序,所以我知道订单数据保存在某个地方。我在数据库中查看了该帖子的条款和相关数据。订单保存在那里。我没有使用 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>';
}
?>
我知道这是一个旧线程,但对于那些寻找 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
?>