Hello,
I’m trying to order my taxonomy terms, and it does not work π
here is my code :
<?php $the_problems = get_field('related_taxo'); ?>
<?php if( $the_problems ): ?>
<ul>
<?php foreach( $the_problems as $problem ): ?>
<li><?php echo $problem->name; ?></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
I would like to order the terms, by name or by count… is it possible ?
I read the doc and added this in my functions.php, but with no result π
function my_taxonomy_query( $args, $field, $key ) {
$args['orderby'] = 'count';
$args['order'] = 'ASC';
return $args;
}
add_filter('acf/fields/taxonomy/query', 'my_taxonomy_query', 10, 3);
What am I missing ?
thanks !
Hi @anybodesign
The “acf/fields/taxonomy/query” is used to query the taxonomies on the backend. If you want to sort it on the front-end, you need to sort it manually using array_multisort() like sorting a repeater. This page should give you more idea about it: http://www.advancedcustomfields.com/resources/how-to-sorting-a-repeater-field/.
So you can do it like this:
$value = get_field('taxonomy', '76');
$order = array();
// populate order
foreach( $value as $i => $row ) {
$order[ $i ] = $row->count;
}
array_multisort( $order, SORT_ASC, $value );
print_r($value);
I hope this helps.
Thanks a lot James !
I can order now the outpout on the front-end π
I update my code like this :
$the_problems = get_field('related_taxo');
$order = array();
foreach( $the_problems as $i => $problem ) {
$order[ $i ] = $problem->count;
}
array_multisort( $order, SORT_ASC, $the_problems )
thanks
An alternative approach is to install https://wordpress.org/plugins/taxonomy-terms-order/, order the terms how you want via drag and drop and then the terms automatically appear in the new custom order.