用户从显示自定义帖子类型的帖子的页面开始,“代理”。
显示的每个帖子显示其所属的区域/自定义分类法,并链接到一个页面,该页面显示用户单击的区域中的所有帖子。
这是这些帖子当前的显示方式,
<?php while ( have_posts() ) : the_post(); ?>
理想情况下,我希望按照meta\\u键lname的字母顺序对这些内容进行排序,而不是按照wordpress默认的发布日期进行排序。
感谢您的任何意见
编辑:我用来获取所有自定义帖子类型代理的脚本。将一个指定的帖子作为最后一篇帖子。
<?php
$loop = new WP_Query( array(
\'post_type\' => \'agents\',
\'orderby\' => \'meta_value\',
\'meta_key\' => \'lname\',
\'order\'=>\'ASC\',
\'meta_query\' => array(array( \'key\' => \'lname\' )),
\'post__not_in\' => array( \'93\' ),
\'posts_per_page\' => -1 ) );
$loop2 = new WP_Query( array(
\'post_type\' => \'agents\',
\'post__in\' => array( \'93\' ) ) );
?>
<?php
if($loop->have_posts() || $loop2->have_posts()) {
if($loop->have_posts()) { while($loop->have_posts()) { $loop->the_post();
?>
SO网友:chrisguitarguy
与上述答案大致相同,但使用meta_query
而不是meta_key
. meta_key
自WP 3.1起已弃用。我不确定是不是meta_value
然而,在这种情况下仍然有效。
$wpse20766args = array(
\'orderby\' => \'meta_value\',
\'order\' => \'ASC\',
\'post_type\' => \'agent\',
\'posts_per_page\' => -1,
\'meta_query\' => array(
array(
\'key\' => \'lname\'
)
)
);
$wpse20766q = new WP_Query( $wpse20766args );
// then the loop...
if( $wpse20766q->have_posts() ):
while( $wpse20766q->have_posts() ) :
$wpse20766q->the_post();
// do stuff...
endwhile;
endif;