【WordPress】デイトピッカーの日付で記事をソートする方法

本ブログはアフィリエイト広告を利用しています

ブログ・サイト
ブログ・サイト
この記事は約3分で読めます。

とっちゃん@nyanco! です。

今回はWordPressのカスタムフィールド「デイトピッカー」の日付順で記事一覧を並び替える方法の覚書です。

肉玉にゃんこ

プラグイン「Custom Post Type UI」で追加するような「カスタム投稿」にも対応できますにゃ~

スポンサーリンク

投稿記事一覧は「公開日」順に並ぶ

普通、WordPressの投稿記事は「公開日」が新しい順に並びますが、イベントやセミナーの告知記事などを一覧にする時は「公開日」ではなく「イベントの開催日」順にしたいケースもありますよね。

肉玉にゃんこ

各投稿記事の「公開日」を修正すると並び順を意図的に変更することもできますが、なかなか面倒ですにゃ~

そんな時は、「デイトピッカー」という「日付」のカスタムフィールドを追加して各投稿記事ごとに「開催日」の情報を設定しておくことで、「公開日」に関係なく常に「開催日」順に記事一覧が並ぶようになるので非常に便利です。

本記事ではそのやり方をご紹介します。

「デイトピッカー」とは?

そもそも「デイトピッカー」とは、プラグイン「Advanced Custom Fields(ACF)」で追加できるカレンダー式のカスタムフィールドです。

肉玉にゃんこ

カレンダーなので曜日も分かりやすく直感的に選択できて優秀なやつですにゃ~

▼こんな見た目のとても使いやすいユーザーインターフェイスです。

「デイトピッカー」の日付順に記事を並び替える方法

WordPressループのパラメータ設定で下記コードを追加するだけでOKです。

'post_type' => '投稿タイプを入力', /* カスタム投稿名 */
'meta_key' => 'カスタムフィールド名', /* 「デイトピッカー」のフィールド名 */
'orderby' => 'meta_value', /* 並び順の基準の指定。この場合は'meta_key'で指定したフィールドの値 */
'order'=> 'DESC', /* 降順でソート(昇順は'ASC') */

‘post_type’に設定する「投稿タイプ」は下記のようなものがあります。

  • post:通常の投稿
  • page:固定ページ
  • revision:リビジョン(いわゆる「履歴」。使うのか?)
  • attachment:添付ファイル(これも使うのか??)
  • any:全部の投稿タイプ(リビジョンを除く)
  • カスタム投稿名(例:event)

具体例は下記となります。

<?php
$args = array(
'post_type' => 'event', /* カスタム投稿名 */
'meta_key' => 'event_date',/* 「デイトピッカー」のフィールド名 */
'orderby' => 'meta_value',/* 並び順の基準の指定 */
'order' => 'DESC',/* 降順でソート */
); ?>

おわりに

本記事がどなたかの参考になれば幸いです。

今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧

コメント

  1. まっちー より:

    こんにちは、こちらの記事を拝見させていただき、同じようにイベントの開催日順に記事を並ぶようにしてみたいと思いググっていたらたどり着きました。
    苦戦しています。図々しくもアドバイスをいただければと思いコメントさせていただきました!

    • とっちゃん とっちゃん より:

      コメントありがとうございます!
      自分に分かる範囲になりますがサポートしますよー!
      具体的にどこで上手くいかない感じでしょうか?

      • まっちー より:

        ありがとうございます!
        ほぼ素人でよくわかっていない、という感じなのですが・・・・
        今、あるパーソナルジムのセミナーの告知・終了後のレポートをwordpressを使い行っているのですが、運用から時間も経ってきて、デザインも古いし、使いにくいのでリフレッシュしたいと思いいろいろやっている最中です。
        これから開催するセミナーやイベントを、「開催日」以降表示させない、ようにしたいのですが、とりあえず見よう見まねでAdvanced Custom Fieldsは置いてみたのですが、そこからよくわかっておりません・・・・・・・・
        説明がひどくて申し訳ありません(汗)
        もしよろしければ・・・よろしければ・・・・URLと管理情報共有させていただきます・・・(アセ