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; の記述も必要です。

24 Comments

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

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

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

  • WordPress で「全◯件中◯件〜◯件目を表示」を表示する http://t.co/ASHgKn6k @kzxtremeさんから

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

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

  • webdesignstatio webdesignstatio

    WordPress で「全◯件中◯件〜◯件目を表示」を表示する  |  wpxtreme ちょっと長いですが テーマフォルダの functions.php に以下を追加します。 function my_result_count(… http://t.co/XZD1kMxj

  • wordpress_news wordpress_news

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

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

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

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

  • infoeproduction infoeproduction

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

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

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

  • なるほどぉ。勉強になります。 / WordPress で「全◯件中◯件〜◯件目を表示」を表示する http://t.co/mXO2Iric @kzxtremeさんから

  • wild_bunch_55 wild_bunch_55

    [*wordpress][*tips] / “WordPress で「全◯件中◯件〜◯件目を表示」を表示する  |  wpxtreme” http://t.co/64YglCRo

  • φ(..)メモメモ|WordPress で「全◯件中◯件〜◯件目を表示」を表示する http://t.co/YjvjWfun @kzxtremeさんから

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

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

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

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

  • hitomi_e hitomi_e

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

  • nouphet nouphet

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

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

Leave a Reply