J'essaie de saisir le numéro du message à côté, mais dans l'ordre inverse, ce qui signifie
ne pas
1 2 3 4
mais
4 3 2 1.
J'ai réussi à le faire dans le "bon" ordre avec ceci:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php echo $wp_query->current_post + 1; ?>
mais je ne peux pas comprendre comment faire le contraire. Morethough, quand j'ai mes messages dans plusieurs pages, ça casse aka
PAGE 1: 1234 PAGE 2: 1234 (devrait être 5678)
J'ai essayé ceci:
<?php echo $wp_query->found_posts - $wp_query->current_post ?>
qui entre 8765 puis la page suivante 8765 au lieu de 4321 ...
Pour imprimer un compteur décroissant pour la requête principale à la maison, sans les posts collants, vous pouvez essayer:
// current page number - paged is 0 on the home page, we use 1 instead
$_current_page = is_paged() ? get_query_var( 'paged', 1 ) : 1;
// posts per page
$_ppp = get_query_var( 'posts_per_page', get_option( 'posts_per_page' ) );
// current post index on the current page
$_current_post = $wp_query->current_post;
// total number of found posts
$_total_posts = $wp_query->found_posts;
// Decreasing counter
echo $counter = $_total_posts - ( $_current_page - 1 ) * $_ppp - $_current_post;
Exemple:
Pour un total de 10 messages, avec 4 messages par page, le compteur décroissant doit être:
Page 1:
10 - ( 1 - 1 ) * 4 - 0 = 10
10 - ( 1 - 1 ) * 4 - 1 = 9
10 - ( 1 - 1 ) * 4 - 2 = 8
10 - ( 1 - 1 ) * 4 - 3 = 7
Page 2:
10 - ( 2 - 1 ) * 4 - 0 = 6
10 - ( 2 - 1 ) * 4 - 1 = 5
10 - ( 2 - 1 ) * 4 - 2 = 4
10 - ( 2 - 1 ) * 4 - 3 = 3
Page 3:
10 - ( 3 - 1 ) * 4 - 0 = 2
10 - ( 3 - 1 ) * 4 - 1 = 1
ou:
Page 1: 10,9,8,7
Page 2: 6,5,4,3
Page 3: 2,1
Mise à jour:
Pour supporter les posts collants, nous pouvons ajuster le compteur ci-dessus avec:
// Decreasing counter
echo $counter = $_total_posts
+ $sticky_offset
- ( $_current_page - 1 ) * $_ppp
- $_current_post;
où nous définissons:
$sticky_offset = is_home() && ! is_paged() && $_total_posts > $_ppp
? $wp_query->post_count - $_ppp
: 0;
Notez qu'il peut y avoir trois cas de messages collants:
Nos ajustements devraient gérer les trois cas.
Question étrange. Vous pouvez créer une requête secondaire ou exécuter un hook dans pre_get_posts mais l’idée générale est que vous le feriez par ID dans l'ordre décroissant:
$query = new WP_Query( array(
'orderby' => array( 'ID' => 'DESC' ),
) );
Vous pourriez aussi probablement exécuter array_reverse () sur le tableau posts
de la requête d'origine, mais je n'ai pas tendance à gâcher l'objet de requête WP d'origine.
Voici...
<?php
$per_page = 4;
$post_query = new WP_Query('post_type=post&posts_per_page='.$per_page);
$total_found_posts = $post_query->found_posts;
if($total_found_posts >= $per_page){
$count_from = $per_page;
} elseif ($total_found_posts < $per_page){
$count_from = $total_found_posts;
}
if (have_posts()) : while (have_posts()) : the_post();
the_title();
echo 'Serial #'. $count_from--;
endwhile;
endif;
wp_reset_postdata();
?>