Wordpressで記事一覧の表示数を調整したい場合はquery_postsを使う。インスタント版
Wordpressでサイトやブログを構築していると、1ページあたりに表示する投稿記事数を制御したい場合がでてきます。
本来であれば、管理画面の[表示設定]から調整できるのですが、特定のページだけカスタマイズしたいケースも出てきたり。
その場合は、phpを直接いじりましょう。
WP独自関数であるquery_postsを使います。
引数部分(括弧内)にカテゴリや投稿数を指定することで、その直後に現れる投稿ループを操作する関数です。
<?php query_posts('&posts_per_page=20'); //20記事表示する if (have_posts()) : while (have_posts()) : the_post(); ?>
ただしこの場合だと、以下の問題が出てきます。
- カテゴリ毎に記事数を変更できない。
- ページ送りが設定されていないので、常に最新の記事を読み込んでしまう。
なのでページ送りはグローバル変数である $query_stringと、カテゴリに関しては、関数「get_the_category」かつ引数「category_name」を使います。
それらを実装させたのがこちら。
<?php //グローバル変数$query_stringを取得 global $query_string; $catinfo = get_the_category(); $catname = $catinfo[0]->category_nicename; if($catname == カテゴリ名) { //$query_stringとクエリ部分は.で繋ぐ query_posts($query_string . '&posts_per_page=20'); } if (have_posts()) : while (have_posts()) : the_post(); ?>
これらを追加するファイル名は、記事一覧を表示する箇所ならどこでも大丈夫ですが、主に
index.php
category.php
tag.php
archive.php
などが一般的ですね。