シェアオフィス6F
貸会議室6F

こんにちは。スタッフのユースケです。

WordPressにはカスタムフィールドという、タイトルや本文とは別に個別の項目を持つことが出来る仕組みがあります。
よくあるのが、記事に公開日とは別の日付項目を設けたい時などに、カスタムフィールドで項目を設けます。(例:開催日)
そして、開催日などを設けると、記事を開催日順に表示したいというニーズは必ず出てきますよね。
そんな時に使える小技を今日は紹介します!

取得したい記事の並び順を変えるには、記事取得時のQueryパラメータを指定してあげればOKです。
下記のサンプルは、記事をカスタムフィールドの「開催日」降順で取得しています。

$my_query = new WP_Query(array(
    'posts_per_page' => -1,
    'order' => 'DESC',
    'meta_key'=>'開催日',
    'orderby'=>'meta_value',
));

ポイントは3つ。
・order : ASC(昇順)、DESC(降順)を指定
・meta_key : カスタムフィールドの項目名を指定
・orderby : 「meta_value」を指定することで、記事のメタ情報(カスタムフィールドなど)での並び替えが可能になります。
        ここには他にも指定できるキーワードがあるので、Codexなどで調べてみてください。

これだけです。簡単ですよね?便利です、WordPress。

その他に偶にあるのが、掲載期間をカスタムフィールドに持たせて期間内の記事のみ表示させるというケース。
これも先ほどのQueryパラメータで解決できます!
下記サンプルです。

$my_query = new WP_Query(array(
    'posts_per_page' => -1,
    'order' => 'DESC',
    'meta_key'=>'開催日',
    'orderby'=>'meta_value',
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key' => '掲載開始日',
            'value' => date('Y/m/d'),
            'compare' => '<=',
            'type' => 'DATE'
        ),
        array(
            'key' => '掲載終了日',
            'value' => date('Y/m/d'),
            'compare' => '>=',
            'type' => 'DATE'
        )
    )
));

先ほどのサンプルに「meta_query」というパラメータを加えています。
このパラメータはカスタムフィールドの絞り込み条件を指定するもので、サンプルでは「掲載開始日」と「掲載終了日」を現在日付と比較して絞り込みを行っています。

ポイントは条件指定の連想配列です。
・relation : 「AND」か「OR」を指定。複数条件で絞り込む際に使用。
・key : 絞り込む項目。
・value : 絞り込む値。
・compare : 値の比較方法。他に「=」や「LIKE」など、SQLの条件指定が使用可能。
・type : データ型を指定。「NUMERIC」や「CHAR」など。

これで、期間指定で記事を取得できます!
ただ注意点が1つあり、便利だからと複雑な条件指定をしてしまうと、データベースの検索処理に時間がかかってしまうので多用は禁物です。

如何でしたか?
ブログ記事は公開日順で、イベントのお知らせは開催日順でなど、ケースによって使い分けてみてくださいねー。

スポンサーリンク

スポンサーリンク

この記事を書いた人

7Fを運営している株式会社コミュニティコムでプログラマーをしています。担当はWeb制作ですが、受付にもフワッと座ってます。呼称は「ゆーすけ」なので気軽に呼んでください。7F受付にあるチェックインシステムを作った人だったりします。好きなものはお酒です。でも痛風なのでビールは与えないでください!だんだん年齢に抗えなくなってきたので、イイ感じにできる運動があれば紹介してください。



メールマガジン登録

週1回程度でメールマガジンにて、コワーキングスペース7Fのイベントや勉強会情報や近況、Web関係や地域情報などを配信しています。
もし良ければ以下のフォームにメールアドレスを入力して登録してくださいね!

7F情報をぜひフォローください!


スポンサーリンク

月額会員募集中の申し込みフォーム
イベント情報
会議室ご予約
オープンスペースご予約
無料見学ご予約
お問い合わせ
メールマガジン登録フォーム
フロアマップ
よくある質問
Amazonコワーキングスペース7Fのほしい物リスト
一時託児施設利用
7F大学
リブライズ
Eightどこでもスキャン計画
7Fスタッフ募集のお知らせ
シェアオフィス6F
貸会議室6F

混雑状況やイベント情報

サイト内検索