WordPress(ワードプレス)でホームページを作りたい、カスタムしたいという人のためのサイトです。

アーカイブで1ページに表示される件数を制御する方法

TOP > カスタム方法 > アーカイブで1ページに表示される件数を制御する方法

WordPressをカスタムしていると必ずといっていいほど引っかかるあれですあれ。
テンプレートごとに表示件数を変えたいっていうあれですよ。
以前まではquery_posts関数で対応してましたが、どうも最近ではquery_postsが非推奨になっているようで、これはまずいといいことでメモしておきます。
詳しくはこちらのブログを見ていただくと分かりやすいかと思います。

query_postsを捨てよ、pre_get_postsを使おう【追記あり】【報告あり】

archives.phpの投稿件数を制御する方法

では実際の方法。
以下コードをfunctions.phpに追記します。
非常に簡単ですね。

function change_posts_per_page($query) {
if ( is_admin() || ! $query->is_main_query() )
return;

if ( $query->is_archive() ) {
$query->set( 'posts_per_page', '5' );
}
}
add_action( 'pre_get_posts', 'change_posts_per_page' );

注意点

これまでのquery_postsはarchives.phpとかの個別テンプレートに直接記載する形での対応でしたが、今回の分はfunctions.phpに追記する形での対応です。
気をつけないといけないのはfunctions.phpはWordpressのコアファイルなので、変な追記しちゃうとWordpress自体が動かなくなってしまいます。
ダッシュボードから変更してそのまま動かなくなるとか最悪の自体もあるので、まずはバックアップを取ってから作業をするようにしましょう。


« »

ABOUT THE AUTHOR

こしもあんず
こしもあんず

Wordpressをカスタマイズすることが好きなギーク女子です。
好きなエディタはSublimetext2です。
Google+やってるので、よろしくです。
デザインは好きですが、PHPはあまり得意ではないのでその辺ご容赦くださいね。


Twitterはこちら
https://twitter.com/wordpresscusto1

ad