I currently use the following code to list posts in Archive.php but I want the results to be ordered by name in ascending order, I have checked the codex but the answer isn’t clear to me, how can I get this working?
<?php $post = $posts[0]; // ?>
Thanks in advance.
The easiest way to do this is to use a hook (the pre_get_posts
hook) to change the order. But you should check that the query is one for which you do want to alter the order! (is_archive()
or is_post_type_archive()
should be sufficient.)
For instance, put the following in your theme’s functions.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;
};