自定义字段问题在wordpress上的orderby

时间:2014-07-01 03:34:30

标签: php wordpress custom-taxonomy

我制作了一个自定义字段" term_order"在wp_terms中,我创建了一个重新排序自定义分类的功能。当我拖放条款时,它会将重新订单保存在" term_order"字段成功,但当我编写并执行" orderby => term_order"查询它不起作用。

这是我的代码:

<?php
     $foo_parent_ID = 0;

     $foo_args = array(
                'orderby' => 'term_order',
                'order' => 'ASC',
                'hide_empty' => false,
                'parent' => $foo_parent_ID
     );

     $foo_terms = get_terms('foo_cat', $foo_args);

     if($foo_terms){
?>
       <ul id="foo_order_sortable" class="foo_admin_order">
       <?php
            foreach($foo_terms as $foo_term) :
       ?>
            <li id="foo_parent_id_<?php echo $foo_term->term_id; ?>" class="lineitem <?php echo ($i % 2 == 0 ? 'alternate ' : ''); ?>ui-state-default">
                <?php echo $foo_term->name.' _ id='.$foo_term->term_id.' ==> order-'.$foo_term->term_order; ?>
            </li>
       <?php
             endforeach;
       ?>
       </ul>

它显示了我的顺序,我不理解的错误在哪里。

1 个答案:

答案 0 :(得分:0)

在经过多次搜索后我找到了解决方案。

在wordpress数据库的任何表格中创建自定义字段时,只需添加此过滤器:

add_filter('get_terms_orderby', 'function name', 10, 2);

这是我的解决方案:

function foo_tax_order($orderby, $args){

    $kbe_tax = "foo_cat";

    if($args['orderby'] == 'term_order'){
        return 't.term_order';
    }elseif($kbe_tax == 1 && !isset($_GET['orderby'])){
        return 't.term_order';
    }else{
        return $orderby;
    }
}
add_filter('get_terms_orderby', 'foo_tax_order', 10, 2);