WordPress で「全◯件中◯件〜◯件目を表示」を表示する

検索結果や各種アーカイブなどの記事一覧でページネーションする場合によくある表示「全◯件中◯件〜◯件目を表示しています」の決定版をお届けします。件数取得のために改めて get_posts() 的なことをしないので WordPress に優しい作りです。また posts_per_page = -1 のときに $wp_query->found_posts が 0 になる不具合にも対応済です。
ただし、不正なページ指定による Not Found 時やハナから have_posts() が false な場合に何らかの表示が必要な場合は、別途対応してください。

ちょっと長いですが

テーマフォルダの functions.php に以下を追加します。

function my_result_count() {
  global $wp_query;

  $paged = get_query_var( 'paged' ) - 1;
  $ppp   = get_query_var( 'posts_per_page' );
  $count = $total = $wp_query->post_count;
  $from  = 0;
  if ( 0 < $ppp ) {
    $total = $wp_query->found_posts;
    if ( 0 < $paged )
      $from  = $paged * $ppp;
  }
  printf(
    '<p>全%1$s件中 %2$s%3$s件目を表示</p>',
    $total,
    ( 1 < $count ? ($from + 1 . '〜') : '' ),
    ($from + $count )
  );
}

使い方

index.php, archive.php, category.php, date.php などの記事一覧系テンプレートファイルに、以下のように書きます。

if ( have_posts() ) : 
  my_result_count();  // ここら辺で表示します
  while ( have_posts() ) :
    the_post();
    /* do stuff */
  endwhile;
else :
  /* Nothing Found */
endif;

ちなみに

「全部で◯件」を取得するだけなら以下のように書けば OK ◎

$count = 0 < get_query_var( 'posts_per_page' ) ? $wp_query->found_posts : $wp_query->post_count;

※ functions.php など、テンプレートファイル以外に書く場合は予め global $wp_query; の記述も必要です。

15 Comments

  • "φ(・ェ・o)~メモメモ

  • 【ブログ書いた】WordPress で「全◯件中◯件〜◯件目を表示」を表示する http://t.co/3kTbL2Vp @wordpress_fan #wordpressjp

  • infoeproduction infoeproduction

    【ブログ書いた】WordPress で「全◯件中◯件〜◯件目を表示」を表示する http://t.co/3kTbL2Vp @wordpress_fan #wordpressjp

  • WordPress で「全◯件中◯件〜◯件目を表示」を表示する  |  wpxtreme http://t.co/iTvRs9dp

  • ページング

  • “WordPress で「全◯件中◯件〜◯件目を表示」を表示する  |  wpxtreme” http://t.co/R2aJhasO

  • ページナビゲーションを作成する際に参考にする。メモ

  • WordPress で「全◯件中◯件〜◯件目を表示」を表示する  |  wpxtreme http://t.co/7rTOEQKi

  • これも便利そうなので、φ(`д´)メモメモ…
    WordPress で「全◯件中◯件〜◯件目を表示」を表示する http://t.co/D6EvoRIq @kzxtremeさんから

  • “WordPress で「全◯件中◯件〜◯件目を表示」を表示する  |  wpxtreme” http://t.co/2GWkYSCi

  • “WordPress で「全◯件中◯件〜◯件目を表示」を表示する  |  wpxtreme” http://t.co/2GWkYSCi

  • WordPress で「全◯件中◯件〜◯件目を表示」を表示する http://t.co/RMP8e8RX via @kzxtreme

  • WordPress で「全◯件中◯件〜◯件目を表示」を表示する http://t.co/RMP8e8RX via @kzxtreme

  • ページナビゲーション

  • WordPress で「全◯件中◯件〜◯件目を表示」を表示する @kzxtremeさんから