横にある投稿の数値を入力しようとしていますが、逆の順序で入力しています。つまり、
ではない
1 2 3 4
しかし
4 3 2 1。
私はこれで「正しい」順序でそれをすることに成功しました:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php echo $wp_query->current_post + 1; ?>
しかし、私はその逆のやり方を理解することはできません。それにもかかわらず、私がいくつかのページに私の投稿があるとき、それは別名壊れます
PAGE 1:1234 PAGE 2:1234(5678であるべきです)
私はこれを試しました:
<?php echo $wp_query->found_posts - $wp_query->current_post ?>
これは、8765を入力してから、4321の代わりに次のページ8765を入力します。
スティッキーポストを使わずにメインホームクエリの減少カウンタを印刷するには、次のようにします。
// 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;
例:
1ページに4件の投稿がある、合計10件の投稿の場合、減少カウンタは次のとおりです。
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
または
Page 1: 10,9,8,7
Page 2: 6,5,4,3
Page 3: 2,1
更新:
スティッキーポストをサポートするために、上記のカウンターを次のように調整します。
// Decreasing counter
echo $counter = $_total_posts
+ $sticky_offset
- ( $_current_page - 1 ) * $_ppp
- $_current_post;
ここで定義します。
$sticky_offset = is_home() && ! is_paged() && $_total_posts > $_ppp
? $wp_query->post_count - $_ppp
: 0;
スティッキーポストには3つのケースがあります。
私たちの調整は3つのケースすべてを処理するはずです。
奇妙な質問です。二次照会を作成するか、または pre_get_posts にフックを実行することができますが、一般的な考え方は ID順にすることです 降順で:
$query = new WP_Query( array(
'orderby' => array( 'ID' => 'DESC' ),
) );
元のクエリのposts
配列で array_reverse() を実行することもできますが、元のWPクエリオブジェクトを台無しにすることはほとんどありません。
どうぞ...
<?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();
?>