在Archive.php上按名称和ASC顺序对结果排序

时间:2012-01-23 作者:Dave Burns

我目前使用以下代码列出存档中的帖子。php但是我希望结果按名称升序排列,我已经检查了codex,但我不清楚答案,我如何才能让它工作?

<?php $post = $posts[0]; // ?>
提前谢谢。

3 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

最简单的方法是使用挂钩(pre_get_posts 钩子)更改顺序。但您应该检查该查询是否是您想要更改其顺序的查询!(is_archive()is_post_type_archive() 应足够。)

例如,将以下内容放入主题的函数中。php。。。

add_action( \'pre_get_posts\', \'my_change_sort_order\'); 
    function my_change_sort_order($query){
        if(is_archive()):
         //If you wanted it for the archive of a custom post type use: is_post_type_archive( $post_type )
           //Set the order ASC or DESC
           $query->set( \'order\', \'ASC\' );
           //Set the orderby
           $query->set( \'orderby\', \'title\' );
        endif;    
    };

SO网友:Abdelfattah Saied Baraka
<?php
// we add this, to show all posts in our
// Glossary sorted alphabetically
if ( is_category(\'Glossary\') )  {
    $args = array( 
        \'posts_per_page\' => -1, 
        \'orderby\'        => \'title\', 
        \'order\'          => \'ASC\' 
    );
    $glossaryposts = get_posts( $args );
}
foreach( $glossaryposts as $post ) : setup_postdata( $post );
    ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
SO网友:josh

根据Stephen的回答,如果您只想按标题进行查询和排序,可以在模板文件中使用:

$args = ( array(
\'order\' => \'ASC\',
\'orderby\' => \'title\',
 ) );

query_posts($args);

结束

相关推荐

Sort admin menu items

关于“的相关注释”Changing the Order of Admin Menu Sections?“,我正在寻找一种按字母顺序对WordPress管理区域的每个子部分中的条目进行排序的方法。目前,每当添加新插件时,其条目都会出现在“设置/工具/插件”下看似随机的位置,通常很难找到新的菜单项。(我已经有很多插件了,所以我的菜单很满。)由于我相当经常地添加和删除插件,所以我宁愿不需要不断进入设置页面来获取菜单排序插件并调整顺序。抱歉问了这么长的问题;我只是想弄清楚我在找什么。示例代替: S