it-swarm.com.de

Ergebnisse auf Archive.php nach Name und aufsteigender Reihenfolge sortieren

Ich verwende derzeit den folgenden Code, um Beiträge in Archive.php aufzulisten, aber ich möchte, dass die Ergebnisse nach Namen in aufsteigender Reihenfolge sortiert werden. Ich habe den Codex überprüft, aber die Antwort ist mir nicht klar. Wie kann ich das erreichen?

<?php $post = $posts[0]; // ?>

Danke im Voraus.

11
Dave Burns

Der einfachste Weg, dies zu tun, besteht darin, einen Haken (den pre_get_posts-Haken) zu verwenden, um die Reihenfolge zu ändern. Sie sollten jedoch überprüfen, ob es sich bei der Abfrage um eine Abfrage handelt, für die Sie die Reihenfolge ändern möchten! ( is_archive() oder is_post_type_archive() sollte ausreichen.)

Fügen Sie zum Beispiel Folgendes in die functions.php Ihres Themes ein ...

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;    
    };
29
Stephen Harris
<?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; ?>

wenn Sie nach Stephens Antwort nur nach dem Titel fragen und bestellen möchten, können Sie dies in Ihrer Vorlagendatei verwenden:

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

query_posts($args);
0
josh