WordPressでアーカイブ毎に表示件数を変える方法

  • 公開日:2013/11/19
この記事は最終更新日から10年以上が経過しています。
2013.12.27 追記
もっとスマートな方法をご紹介しております。
特定のカスタム投稿タイプのみアーカイブでの表示件数を変える

アーカイブで表示する件数を、投稿タイプ別に変更する方法のメモ。
今回の状況:

  • 投稿はブログとして使用
  • カスタム投稿タイプを2種類追加(gallery、worksとする)
  • カスタム投稿タイプはいずれもHas ArchiveはTrue
  • 1ページあたりに表示したい件数は、ブログが3件、galleryが18件、worksが8件

1ページに表示する最大投稿数は、[設定] > [表示設定]で指定することができます。
ここでは、表示件数が一番少ないブログの3件を設定します。
disp_setting

設定した3件以上表示したい投稿タイプのアーカイブファイルを以下のように記述します。
例えば、18件表示したいgalleryのアーカイブファイル「archive-gallery.php」では

<?php
$paged = get_query_var('paged');
query_posts($query_string . '&posts_per_page=18&paged=' . $paged);
if (have_posts()):
    while (have_posts()): the_post();
?>
・・・
<?php
    endwhile;
else:
?>
・・・
<?php
endif;
wp_reset_query();
?>

同じ要領で8件表示したいworksでは「archive-works.php」をposts_per_page=8として記述します。

ちなみに、全件表示したい場合は以下のように記述します。

<?php
query_posts($query_string . '&posts_per_page=-1');
if (have_posts()):
    while (have_posts()): the_post();
?>
・・・
<?php
    endwhile;
else:
?>
・・・
<?php
endif;
wp_reset_query();
?>