ブログ

WordPressでカスタムフィールドの値を元に記事をソートPosted by:岩下 雄一郎

皆様こんにちは。株式会社インスパイアの岩下です。

当社のブログは役職者が一ヶ月毎に持ち回りでやっていますので大分ご無沙汰です。4月という事もあり、当社には今年も新卒が入社して来てくれました。

慣れない新生活で緊張し続けの毎日かと思うので少しでも馴染みやすくなるよう

笑顔多めで働こうと思います。


さて、今回はタイトルの通りちょっと馴染みのない作業があったので備忘録的に作業内容を綴ろうかと思います。

内容は記事の一覧表示で設定した日付を過ぎた記事を自動で表示させなくする と言うものです。

期間限定のクーポンを投稿していきたいというご要望から実装することとなりました。



カスタムフィールドの用意

まず最初に記事の表示・非表示の値となる日付を入れるカスタムフォールドを準備します。

今回はお手軽なACFを使用しました。



使用したフィールドは日付入力なのでデイトピッカーで用意、フォーマットだけ日本表記に変更しました。

WP_Query用のソートを作成


用意したカスタムフィールドの値でソートするPHPを書きます。



$args = array(
'post_type' => '◯◯◯◯',//カスタム投稿名
'posts_per_page' => -1,
'order' => 'DESC',
'meta_key' => 'event-date',//カスタムフィールド名をセット
'orderby' => 'event-date',//ソート対象に設定
'meta_value' => date( "Ymd" ),//カスタムフィールドの値
'meta_compare' => '>'//演算子(今回はフィールドの日付より前の日付の記事を表示するので>)
);
$myquery = new WP_Query( $args );
?>

後は記事の出力をHTMLベースで書いていきます。



完成

カスタムフィールを作って、ちょっとソートを入れるだけで実装出来ます。

今回はクーポン用の投稿でしたがイベント告知用のブログや簡易的な予定表などでも活躍しそうです。簡単に実装できる割には活躍の場があまり無さそうで、次回使うときには忘れてしまいそうだったので書いてみました。

TOP