web-dev-qa-db-fra.com

Ordre alphabétique des articles pour une catégorie particulière

Je cherche une solution pour afficher les messages en ordre alphabétique si la catégorie est "Glossaire", sinon, les messages en ordre croissant. Lorsque j'ai essayé le code suivant, ses travaux étaient parfaits pour la catégorie Glossary, mais l'ordre des autres messages s'est mal passé.

<?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 } ?>

J'espère que quelqu'un m'aidera à résoudre le problème.

1
user2754416

Tout d’abord, je voudrais résoudre votre problème avec WPQuery . Le mieux est d'y aller par opposition à query_posts

Deuxièmement, une fois que vous avez reconnu et accepté que WP Query est votre ami aussi longtemps que vous restez dans le monde merveilleux de la thématique WP, vous devez procéder comme suit pour résoudre votre problème cornichon:

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();

Et cela devrait le faire. Vous pouvez optimiser un peu le tableau $args car j'ai placé des éléments sur les deux conditions, mais cela peut le faire pour un test rapide.

5
Marco Berrocal