我正在使用此代码对交互式“必应地图”可用的菜单选项进行排序。提供的代码是为每个类别中的菜单创建列表元素的代码。我遇到的问题是,它不是通过Marker Number(mrk_num)对其进行排序的,而Marker Number(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出现,但不会按照升序显示(应该是这样)。我对此很陌生,因此我将尝试提供您可能需要的更多信息。
通常,这应该可以工作。
$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查询(例如,可以使用此插件)并在posts_orderby上添加过滤器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句