it-swarm.com.de

Beiträge in alphabetischer Reihenfolge für eine bestimmte Kategorie anzeigen

Ich suche nach einer Lösung, um Posts in alphabetischer Reihenfolge anzuzeigen, wenn die Kategorie "Glossar" lautet. Andernfalls werden die Posts in aufsteigender Reihenfolge angezeigt. Als ich den folgenden Code ausprobiert habe, funktioniert er perfekt für die Kategorie Glossar, aber die Reihenfolge der anderen Beiträge ist falsch.

<?php global $query_string; 

if(is_category('Glossary'))
{
query_posts($query_string . "&orderby=title&order=ASC");
while ( have_posts() ) : the_post();
the_title();
endwhile; 




}
else{
query_posts($query_string . "&order = ASC"); ?>
             <?php while ( have_posts() ) : the_post(); ?>
                    <?php  the_title(); ?>

                <?php endwhile; ?>
<?php } ?>

Hoffe, jemand wird mir helfen, das Problem zu lösen.

1
user2754416

Zuerst würde ich Ihr Problem mit WPQuery lösen. Im Gegensatz zu query_posts ist es am besten, dorthin zu gehen

Zweitens, sobald Sie anerkennen und akzeptieren, dass WP Query Ihr Freund ist, solange Sie sich in der wundervollen Welt des WP Themas befinden, müssen Sie wie folgt vorgehen, um Ihr spezielles Problem zu lösen Essiggurke:

if(is_category('your_category') :
    $args = array(
        'post_type'         => 'post',  
        'posts_per_page'    => 'how_many_posts_you_want_-1_if_all',
        'cat'               => 'your_category_number',
        'orderby'           => 'title', 
        'order'             => 'ASC'
    );
else :
    $args = array(
        'post_type'         => 'post',  
        'posts_per_page'    => 'how_many_posts_you_want_-1_if_all',
        'order'             => 'ASC'
    );
endif;
$loop = new WP_Query( $args ); 
while($loop->have_posts()) : $loop->the_post(); 
    //do your magic here
endwhile;
wp_reset_query();

Und das sollte es tun. Sie können das $args-Array ein wenig optimieren, da ich einige Elemente für beide Bedingungen festgelegt habe, dies kann jedoch für einen schnellen Test durchgeführt werden.

5
Marco Berrocal