WordPress技術

WordPressでカテゴリー記事を好きな場所に表示する方法

WordPressをカスタマイズして、好きな場所に特定のカテゴリー記事を表示したい、ということはないでしょうか?
トップページに、お知らせを5件だけ表示したい、という場合などがありますね。

でもはじめのうちは、なかなかよくわからない場合が多いと思います。
そこをわかるように解説して行きます。

WordPressで記事を表示するには

WordPressで投稿された記事を表示するには、基本的に2種類の方法(関数)があります。

have_posts()

1つ目は、表示されるURLを元に記事を自動で選んでくれる、have_posts() を利用する方法です。
経歴という固定ページがあったら、その固定ページに記載された内容を表示したり、セミナーというカテゴリーのアーカイブページでは、セミナーカテゴリーに投稿した記事を表示したりします。
よくワードプレスループと言われるやつです。
固定ページで入力したパーマリンクや、カテゴリーを作成した際に決めたスラッグなどのアルファベットを元に、WordPressが自動で表示する記事を選んでくれます。

このように書きます。

解説すると、
if(have_posts()):
処理すべき記事があるかどうか判断しています。
ない場合に処理を行うと逆に不具合が生じることがあるので、はじめに記事の存在を確認します。

while(have_posts()):
処理すべき記事がある間、繰り返すということです。

the_post();
処理すべき記事をWordPress内部にセットしてテンプレートタグなどで情報を出力できるようにするとともに、内部的なカウンタを進めます。
このカウンタを見て、have_posts() は処理すべき記事が残っているかどうか判断します。

the_content();
記事を出力します。
the_content(); 部分はよく、content.php の中に記載されていたりします。

WP_Query()

そしていよいよ2つ目、自分で特定のカテゴリーの記事を好きな場所に表示する方法です。
WP_Queryオブジェクトを利用します。
オブジェクトというのは、ひとかたまりのプログラムで、new WP_Query() という書き方を
するだけで、すでに存在するひとかたまりのプログラム全体を利用できるようになります。

このように書きます。

※このままをコピペすると、’が全角になる場合があるので、半角に直してください。

最初にご紹介した、have_posts() を利用する書き方に、$my_query-> を付け足した書き方ですね。

$args = array(); で表示させたい条件の配列を先に作成しておく方法がおすすめです。

$args = array(
‘category_name’ => ‘new’,
‘posts_per_page’ => ‘3’,
);
$my_query = new WP_Query( $args );
の部分で指定したオリジナルの条件に合致する情報を引っ張ってきています。

the_title();
the_content();
の部分で表示ですね。

the_ から始まるテンプレートタグは、WordPress Codex テンプレートタグ にまとめられています。
リンク先に載っている、the_ から始まるテンプレートタグを使って、WordPressループの中で簡単に情報表示ができます。

最後に、wp_reset_postdata(); を記載して、WP_Queryオブジェクトのリセットを行います。

オリジナルの条件

post_typeなどの条件を変えることで、様々な記事を出力することができます。
どんな種類(パラメータといいます)があるかは、本家の関数リファレンスに載っています。
関数リファレンス/WP Query

WP_Queryを使いこなせば、テンプレートの好きな場所に、好きな情報を載せることができますね!
ぜひ活用してみてください。

  • このエントリーをはてなブックマークに追加