web-dev-qa-db-fra.com

Liste des postes par ordre alphabétique

Ce que j'essaie de faire est de définir la liste affichée par ordre alphabétique. Des idées sur comment je peux réussir à atteindre cet objectif?

J'ai collé l'extrait ci-dessous pour référence.

 <ul class="hotel-list">
                  <?php while (have_posts()) : the_post(); ?>
                    <?php
                    $short_description = get_post_meta(get_the_ID(), 'short_search_description', true);
                    $destination = get_post_meta(get_the_ID(), 'destination', true);
                    ?>
                    <li>
                        <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(250, 9999)); ?></a>
                        <a href="<?php the_permalink(); ?>"><?php the_title(); echo $destination; ?></a>
                        <p><?php echo $short_description; ?></p>
                        <div class="clear"></div>
                    </li>
                  <?php endwhile
                  ; ?>
               </ul>
1
Kenny Van Sittert

Contrairement à ce que suggère la réponse acceptée, vous ne devriez jamais utiliser query_posts

Remarque: Cette fonction n'est pas destinée à être utilisée par des plugins ou des thèmes. Comme expliqué plus tard, il existe de meilleures options plus performantes pour modifier la requête principale. query_posts () est une façon trop simpliste et problématique de modifier la requête principale d'une page en la remplaçant par une nouvelle instance de la requête. Il est inefficace (ré-exécute les requêtes SQL) et échouera carrément dans certaines circonstances (particulièrement lorsqu'il s'agit de pagination de publications).

De plus, en regardant votre code, il s’agit de la requête principale sur un modèle, et comme vous n’avez pas pris le temps de répondre au commentaire de @Roberthue au PO, je ne sais toujours pas quel modèle. Ceci m'amène à ce qui suit: jamais remplace la requête principale pour tout type de requête personnalisée sur une page d'archive ou la page d'accueil. Les requêtes personnalisées ne peuvent remplacer que la requête principale sur les modèles de page. S'il vous plaît voir ce post qui devrait tout expliquer à pourquoi j'ai fait cette déclaration

Vous auriez pu simplement simplement utiliser pre_get_posts pour modifier votre ordre de publication sur le modèle spécifique en conjonction avec les balises conditionnelles

Exemple de modification de l'ordre de publication sur une page de catégorie

add_action( 'pre_get_posts', function ( $query ) {
    if ( !is_admin() && $query->is_home() && $query->is_main_query() ) {
        $query->set( 'orderby', 'title' );
        $query->set( 'order', 'ASC' );
    }
});

Si vous en avez besoin sur tous les modèles, vous pouvez faire quelque chose comme ceci

add_action( 'pre_get_posts', function ( $query ) {
    if ( !is_admin() && !$query->is_page() && $query->is_main_query() ) { //Exclude page templates
        $query->set( 'orderby', 'title' );
        $query->set( 'order', 'ASC' );
    }
});
2
Pieter Goosen

Vous pouvez utiliser ce plugin: GR Order Category Post ( https://wordpress.org/plugins/gr-order-category-post/ )

0
Timothy Huynh