2014-01-13 123 views
0

我正在使用此代码对可用于交互式Bing地图的菜单选项进行排序。提供的代码是为每个类别的菜单创建列表元素。我遇到的问题是,它不是通过在Wordpress后端声明的自定义字段的标记号(mrk_num)对它们进行排序。我不知道这是否足够说明来帮助定义我的问题,所以如果您需要更多信息,我会尽力提供。自定义字段值的Wordpress命令

随着代码提供的结果显示,但不是他们应该的顺序。

function navItems($navSet){ 
    $args = array('post_type' => 'territory_map', 
        'posts_per_page' => -1, 
        'meta_value' => $navSet, 
        'orderby'=>'mrk_num', 
        'order'=>'ASC' 
    ); 

    $loop = new WP_Query($args); 

    while ($loop->have_posts()) : $loop->the_post(); 

    $mrkNum = get_custom_field('mrk_num'); 

    echo '<li><a onclick="activateInfoBox('.get_the_id().', $(this))" href="#">' . $mrkNum . ' ' .get_the_title() . '</a></li>'; 

    endwhile; 
} 

$ navSet是当我从HTML调用它时传递给它的类别的名称。例如,我将通过它'室内景点'

结果显示,但不是升序为基础的字段mrk_num应该是。我对此很新,所以我会尽力提供您可能需要的信息。

+0

这可能对你有帮助吗? https://wordpress.stackexchange.com/questions/4707/sort-by-custom-field-value – reikyoushin

回答

0

通常,这应该工作。

$args = array( 
    'post_type' => 'territory_map', 
    'posts_per_page' => -1, 
    'meta_key' => 'mrk_num', 
    'orderby'=>'meta_value_num', 
    'order'=>'ASC', 
    'meta_query' => array(
     array(
      'key' => 'your_key', 
      'value' => $navSet, 
      'compare' => '=' 
     ) 
    ) 
); 

如果它不工作,我已经经历了你想什么来实现和去最好的办法是进行调试的MySQL查询(比如,你可以用这个plugin)和posts_orderby添加过滤器。

+0

当我使用您提供的代码时,不会返回任何结果。 – Fogolicious

+0

其实,我在Wordpress的本地安装上尝试了我的代码,它正在工作。我没有看到你卡在哪里。 –

+0

我认为问题是(并且我不是100%确定)在你的代码中,你正在通过meta_value进行排序,并且$ navSet是真正的类别,我想通过mrk_num命令,这是用户设置的值后端。 – Fogolicious