Make loop alphabetical

时间:2015-07-15 作者:Oscar Arango

我有一个简单的循环,但它以任意顺序返回。我要找的是按字母顺序排列循环。我尝试了一些不同的方法,但似乎无法奏效。

<?php
 // Start the loop.
 while ( have_posts() ) : the_post();

    // Include the page content template.
    get_template_part( \'content\', \'grid-projects\' );
 // End the loop.
 endwhile;
?>

2 个回复
最合适的回答,由SO网友:Oscar Arango 整理而成

这对我来说很有用。工作是一种享受。

$child_pages = new WP_Query( array(
  \'orderby\'     => \'name\',
  \'order\'       => \'ASC\',
  \'cat\'         => \'41\'
) );
while ( $child_pages->have_posts() ) : $child_pages->the_post();
  get_template_part( \'content\', \'grid-projects\' );
endwhile;
wp_reset_postdata();

SO网友:leendertvb

您必须更改查询并添加orderby 参数指定为name. 我会选择pre_get_posts 行动(see documentation) 使用一些条件标记选择右侧页面的查询。

例如:

function change_posts_order($query) {
  if($query->is_home() && $query->is_main_query()) { // edit to match the desired page
     $query->set(\'orderby\', \'name\');
     $query->set(\'order\', \'ASC\');
  }
}
add_action(\'pre_get_posts\', \'change_posts_order\');

结束

相关推荐

Limit loop to future events

我有一个自定义的帖子类型,basic_events, 带有自定义日期字段,date_of_event. 我的视图根据此自定义日期字段按升序显示这些帖子。$args = array( \'post_type\' => array(\'basic_events\'), \'order\' => \'ASC\', \'orderby\' => \'meta_value_num\', \'meta_key\'