J'ai un tas de catégories avec des sous-catégories et des sous-sous-catégories que je veux lister sur mon archive.php
. Les titres des sous-catégories sont répertoriés sur la page d’archive de la catégorie parente.
Il suffit de lister les titres liés des catégories et/ou des publications, rien de plus. Tout fonctionne parfaitement, mais à la dernière étape, je voudrais commander les messages réels par ordre alphabétique.
J'ai donc ce code dans mon archive.php
<?php
if (is_category()) {
$this_category = get_category($cat);
}
$this_category = wp_list_categories('orderby=name&depth=1&show_count=0&title_li=&use_desc_for_title=1&child_of='.$this_category->cat_ID."&echo=0");
if ($this_category && $catlvl !=0) { ?>
<ul class="cat_options">
<?php
if ($catlvl !=3){
if ($catlvl == 1){
// Do stuff
}
if ($catlvl == 2){
// Do stuff
}
} else {
// Do stuff
$wpex_count = 0;
while ( have_posts() ) : the_post();
$wpex_count++;
// Get entry title ?>
<li>
<a href="<?php wpex_permalink(); ?>" title="<?php wpex_esc_title(); ?>" rel="bookmark"><?php the_title(); ?></a>
</li> <?php
// Reset counter to clear floats
if ( wpex_blog_entry_columns() == $wpex_count ) {
$wpex_count=0;
}
endwhile;
}
?>
</ul>
<?php }
Comment puis-je faire pour qu'il liste les messages par ordre alphabétique sur la dernière étape? Sur les pages où figurent les catégories, elles sont classées par ordre alphabétique.
Puis-je utiliser
$args = array( 'posts_per_page' => -1, 'orderby'=> 'title', 'order' => 'ASC' );
de https://codex.wordpress.org/Alphabetizing_Posts ici d'une manière ou d'une autre? Comment? Ou dois-je obtenir mes publications d'une autre manière?
Seules les publications de la catégorie actuelle doivent être répertoriées. Lorsque j'utilise la méthode dans le lien ci-dessus, il liste TOUTES les publications dans TOUTES les catégories.
Je vous suggère d'utiliser le crochet d'action pre_get_posts fourni par WordPress.
Ensuite, dans votre functions.php , ajoutez le code suivant ci-dessous:
function custom_pre_get_posts($query) {
// validate
if(!is_admin() && $query->is_main_query()) {
if(is_archive()) {
$query->set('orderby', 'title'); // order posts by title
$query->set('order', 'ASC'); // and in ascending order
}
}
}
add_action('pre_get_posts', 'custom_pre_get_posts');
Vous pouvez en apprendre plus sur pre_get_posts dans ici