記事: 1ページに表示する投稿数を変えるでは、アクションフックを使用して表示する投稿数を変える方法を紹介しました。

同じアクションフックを使用すると、投稿数以外にも様々なカスタマイズが出来るようになります。

条件分岐タグとパラメータを用いて制御する

それでは、1ページに表示する投稿数を変えるfunctions.phpのコードをおさらいします。

コード中で、カスタマイズの際に重要なのは、is_frontpage()'posts_per_page'の部分です。

条件分岐タグ

is_frontpage()は、表示するページがフロントページ(ホーム)であるかどうかをtruefalseで返す条件分岐タグです。
この条件分岐タグを、適用したいページに合わせて変更します。

条件分岐タグの例

※条件分岐タグについては、記事: 便利な条件分岐タグまとめを参照

パラメータ

'posts_per_page'は、1ページに表示する投稿数を設定するための、WP_Queryクラスのクエリ変数のパラメータです。
パラメータは他にも色々あるので、それを一つまたは複数組み合わせることで、絞り込みや並べ替えを制御します。

パラメータの例

パラメータの詳細や他のパラメータについては、WordPress Codexページなどを参照してください。
関数リファレンス/WP Query – WordPress Codex 日本語版

例1: カテゴリによる絞り込み

フロントページで、newsカテゴリだけを表示する例です。

is_frontpage()でフロントページに限定し、'category_name'にカテゴリスラッグ'news'を設定します。
事前に'category_name'の値が空かを確認して、上書きを防止しています。

例2: 記事の並び順の変更

dictionaryカテゴリのアーカイブページで、タイトルの昇順に記事を表示する例です。

ここでは、'orderby''order'の2つパラメータに値を設定しています。
例1と同様、値をセットする前に、値が空になっているかを確認しています。

例3: カスタムフィールドの値による絞り込み

日付アーカイブのページで、カスタムフィールドで‘重要度’‘3’以上に設定した記事だけを表示する例です。
このような場合は、次のようにmeta_queryを用いたカスタムフィールド値での絞り込みができます。

このアクションフックのWP_Queryクラスのパラメータは、テンプレート内で使用できるquery_posts関数やget_posts関数のパラメータと同じものです。

メインループの絞り込み・並べ替えの場合には、query_posts関数を使うよりも、ここで紹介したアクションフックを使った方法がおすすめです。