显示按Meta_Value排序的自定义分类术语

时间:2015-01-28 作者:bypatryk

我一直在订购自定义分类法。我创建了一个称为Brand 并创建了一些元标记,包括一个名为position. 现在,我想显示我的条款,订购者position 元标记。我试过这样做:

<?php
$taxonomy = \'brand\';
    $term_args=array(
        \'hide_empty\' => false,
        \'orderby\'   => \'meta_value_num\',
        \'meta_key\' => \'position\',
        \'parent\' => 0,
    );
?>

<?php $tax_terms = get_terms($taxonomy, $
<?php foreach ( $tax_terms as $tax_term ) : ?>
    <h2><?php echo $tax_term->name; ?></h2>
<?php endforeach; ?>
但正如我所见get_terms() 不支持\'orderby\' = \'meta_value_num\' 术语按名称排序。有没有办法按位置显示它们?

谢谢你的帮助!帕特里克

1 个回复
最合适的回答,由SO网友:deflime 整理而成

假设position字段中填充了数字以进行排序:查看ksort.

<?php 

            $terms = get_terms(\'brands\');

            // Let\'s create our own array and then reorder it
            $order_terms = array();
            foreach( $terms as $term ) {
                $position = set_up_the_position_meta_here;
                $order_terms[$position] =\'<h2>\'.$term->name.\'</h2>\';
            }

            // now lets reorder the array based on keys (position)
            ksort($order_terms);

            // time to display
            foreach( $order_terms as $order_term ) {
                echo $order_term;
            }

        ?>

结束

相关推荐

Pre_Get_Posts操作中的多个orderby

我过去能够按2个条件对查询结果进行排序(“先按状态=未售出的ASC,然后按日期描述排序结果”),如下所示:add_action( \'pre_get_posts\', \'my_get_posts\' ); function my_get_posts( $query ) { if (is_admin()){ return; } if (is_post_type_archive(\'objet\')){