サイトアイコン 株式会社D-rect

WordPressで特定カテゴリの最新記事を1件だけ表示する

「採用LPを自分で作ろう!!」というテーマは今日はお休みして、今回は、WordPress関連のTipsをお届け。
CTOのがみです。

WordBench宮崎のモデレータをやらせてもらっているのですが、勉強会の要望としては「帰ってすぐに使えるTips」を教えてほしい、とよく言われます。

そこで、今回は実例を交えながら、特定カテゴリの最新記事を1件だけ表示するTipsをお伝えします。

ご要望

弊社のお客様であるピッタリ保険様では、
実店舗が2店舗あり、それぞれの店舗のページで最新のお知らせを表示するようにしています。
リリース後にこんなご要望がありました。

「店舗のお知らせが、店舗ごとのページにアクセスしないと見えないので、もっとお客様の目につくところに出したい」

緊急の店休のお知らせなどもここをご利用されるとのことで、このようにしたいというご要望でした。

対応策

ロゴ下(コンテンツの上部)に、店舗のお知らせを1件だけを表示させることで、今お伝えしたいことを目につくところに表示できるのではないか。
そこで、実際の表示はこのようになりました。

PCでの表示

スマホ表示

ロゴの下に「【お知らせ】」という表示を出しています。
実際にアクセスして確認してみてください。

 

実装方法

まず、投稿をテンプレート内で取得しなければいけませんが、投稿を取得する関数として3つあります。

get_posts

WP_Query

query_posts

get_postsを使おう

テンプレート内で完結させたい。メインのループには影響を与えたくない。という理由から、今回使用するのは「get_posts()」です。

get_postsとは get_postsでパラメータを与えることで、思い通りの投稿を取得することができます。
今回使用するものだけ解説しますので、詳しくは上記のマニュアルを見てください。

以上のパラメータを設定して、投稿を取得することができます。

「1件だけ最新記事を表示する」といったパラメータを確認してください。

get_posts('post_type=post&order=DESC&orderby=date&showposts=1&category_name=topics');

「post_type=post」で投稿を取得、「order=DESC&orderby=date」で日付が新しいもの順に並び替えをしています。
さらに、「showposts=1」で最初の1件を取得。
最後に「category_name=topics」でカテゴリがtopicsのものだけに限定しています。
※このサイトでは、topicsが店舗のお知らせとなっています。

実際のコードはこちら↓↓↓

最後に

いかがでしたでしょうか?
まずは、コピペから初めてみて、自分の運営しているWordPressのサイトにもお知らせを1件だけ表示させてみてください。


おしらせ

「宮崎でITの勉強会に参加したいけど、情報がない!」というあなたへ

宮崎IT関連勉強会という、Facebookグループに参加してください。ここで、勉強会の主催者が開催情報などを告知しています。
こちらのグループもよろしくお願いします。

モバイルバージョンを終了