「採用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でパラメータを与えることで、思い通りの投稿を取得することができます。
今回使用するものだけ解説しますので、詳しくは上記のマニュアルを見てください。
- post_type・・・・・・投稿のデフォルトは「post」。
- その他に、「any」、「attachment」、「page」、「revision」が使用可能。
「any」を指定すると、リビジョン以外の形式のものを取得できる。 - order・・・・・・・・取得したページの並び順。デフォルト値は「DESC」。
ASC が小→大、DESC が大→小。 - orderby・・・・・・・取得した投稿をどの項目について並べるかを指定する。
orderby=dateは、日付で並べる - showposts・・・・・・出力する投稿の数。
- category_name・・・カテゴリー名を指定(日本語も可)
以上のパラメータを設定して、投稿を取得することができます。
「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グループに参加してください。ここで、勉強会の主催者が開催情報などを告知しています。
こちらのグループもよろしくお願いします。