Avec cette boucle, j'affiche des articles uniques sur une page d'archive. Les articles sont triés par catégorie "Banques". En plus de cela, comment puis-je les afficher dans l'ordre alphabétique? J'ai essayé d'utiliser WP_Query
, mais je ne parviens pas à le faire fonctionner. ça casse ma boucle à chaque fois.
<h3>Banks & Credit Unions</h3>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();
if ( in_category( 'Banks' ) ) { ?>
<li>
<a href="<?php the_permalink() ?>">
<img src="<?php the_field( 'biller_logo' )?>">
<?php the_field( 'biller_name' ) ?>
</a>
</li>
<?php }
endwhile; endif; ?>
</ul>
Pour afficher les publications en ordre alphabétique décroissant, ajoutez ceci à votre tableau args
(tiré du codex wp).
'orderby' => 'title',
'order' => 'DESC',
Pour afficher les publications par ordre alphabétique croissant, il suffit de passer de DESC
à ASC
.
Donc, le tout ressemblerait à ceci:
$args = array(
'orderby' => 'title',
'order' => 'DESC',
);
$query = new WP_Query( $args );
Ou à utiliser si vous ne souhaitez pas modifier la boucle principale, utilisez get_posts
. WP La requête modifie la boucle principale en modifiant les variables de la variable globale $ wp_query. Par contre, get_posts fait simplement référence à un nouvel objet WP_Query et n'affecte donc ni ne modifie la boucle principale. Il serait utilisé de la même manière, mais changerait $query = new WP_Query( $args );
en quelque chose comme $query = get_posts( $args );
.
Si vous souhaitez modifier la requête principale avant qu'elle ne soit exécutée, vous pouvez y accéder en utilisant la fonction pre_get_posts.
Ce n'est pas le meilleur code que j'ai jamais écrit ici, mais si vous voulez créer une liste comme celle-ci:
Vous pouvez utiliser ..
<ul>
<?php
query_posts(array(
'post_type' => 'franchise',
'showposts' => 100,
'orderby'=>'title','order'=>'ASC'
) );
$title_2 = 'A';
?>
<?php while (have_posts()) : the_post(); ?>
<?php
$title = get_the_title();
$title_1 = $title[0];
if ($title_1 !== $title_2){
echo '<li> </li><li><h3>' . $title_1 . '</h3></li><li> </li>';
$title_2 = $title_1;
}
?>
<li><a href="<?php echo get_the_permalink(); ?>"><?php echo get_the_title(); ?></a></li>
<?php endwhile;?>
</ul>
Comme je l'ai dit - ce n'est pas la meilleure pratique .. mais vous pouvez ranger et travailler à partir d'ici :)