我正在尝试按员工姓名的字母顺序排列此职位类型的输出,但我似乎不知道是否需要在开头array()
或者如果我在foreach()
环
这是我构建的循环:
<?php
$mypost = array(\'post_type\' => \'staff\', \'posts_per_page\' => 20, \'orderby\' => \'staff-name\',
\'order\' => \'ASC\' );
$loop = new WP_Query( $mypost );
?>
<ul>
<?php while ( $loop->have_posts() ) : $loop->the_post();?>
<?php $items = get_post_meta( $post->ID, \'elements\', true );
foreach( $items as $i){
echo\'<li>
<a href=" \'. get_permalink() .\' ">\' . $i[\'staff-name\'] . \'</a>
</li>
\';
}
?>
<?php endwhile; wp_reset_query(); ?>
The
staff-name
字段保留工作人员的名字和姓氏,但由于某些原因,它看起来并没有按字母顺序正确排序。
我注意到如果我把它从ASC
到DESC
它确实改变了输出的顺序,但没有按字母顺序排列。这就像是忽略了场staff-name
而是通过post ID订购。
SO网友:s_ha_dum
如果您的meta\\u键是“staff name”,则不需要\'orderby\' => \'staff-name\'
, 你想要的\'orderby=>\'meta_value\'
$mypost = array(
\'post_type\' => \'staff\',
\'posts_per_page\' => 20,
\'meta_key\' => \'staff-name\',
\'orderby\' => \'meta_value\',
\'order\' => \'ASC\'
);
这是重复问题的本质,在
the Codex as well.