速報

SageMaker SDKの既定バケットに所有者確認漏れ|成果物の改変を防ぐ更新と点検

CATEGORY

【WordPress】WP_Queryで絞り込みとソートのカスタムフィールドを指定する方法

※本ページのリンクにはプロモーションが含まれています。

【WordPress】WP_Queryで絞り込みとソートのカスタムフィールドを指定する方法

目次

WP_Queryを使用して、絞り込みとソート用のに別のものを指定して取得する方法のご紹介です。

WP_Queryでカスタムフィールドで絞り込み、別のカスタムフィールドでソートをする方法になります。複数のカスタムフィールドを指定して複雑な投稿の取得が可能となります。

本記事の内容

  • WP_Queryとは
  • カスタムフィールドで絞り込む
  • カスタムフィールドでソートする
  • カスタムフィールドの値で絞り込み、ソートする

では、解説していきます。

スポンサーリンク

WP_Queryとは

WP_Queryは投稿を取得する際に使用するWordpressのクラスになります。もう少し詳しくお話すると、Wordpressの投稿データはDBに保存されていますが、WP_Queryを使用することで、様々な条件を指定して投稿データを取得することが可能となります。

さらに詳しい内容につきましては、下記のリンクをご参照ください。

WP_Query

カスタムフィールドで絞り込む

スタンダードな方法になります。

WP_Queryでカスタムフィールドを使って取得する投稿を絞り込みます。

<?php

  $args = array(
    'post_type' => array('post_type'), //投稿タイプを指定
    'posts_per_page' => '-1', //取得する投稿件数を指定
    'meta_key' => 'key', //カスタムフィールドのキーを指定
    'meta_value' => 'value' //カスタムフィールドの値を指定
  );
  $the_query = new WP_Query($args);

  if($the_query->have_posts()){
    while($the_query->have_posts()){
      $the_query->the_post();

      //ここにループ内の処理

    }
  }
  wp_reset_postdata();

?>

スポンサーリンク

カスタムフィールドでソートする

WP_Queryでソートする方法を指定します。

下記の例は、「key」というカスタムフィールドの値で取得する投稿を絞り込み、カスタムフィールドの値の昇順でソートしています。

<?php

  $args = array(
    'post_type' => array('post_type'), //投稿タイプを指定
    'posts_per_page' => '-1', //取得する投稿件数を指定
    'meta_key' => 'key', //カスタムフィールドのキーを指定
    'meta_value' => 'value' //カスタムフィールドの値を指定
    'orderby' => 'meta_value', //ソートの基準を指定
    'order' => 'asc' //ソート方法を指定(昇順:asc, 降順:desc)
  );
  $the_query = new WP_Query($args);

  if($the_query->have_posts()){
    while($the_query->have_posts()){
      $the_query->the_post();

      //ここにループ内の処理

    }
  }
  wp_reset_postdata();

?>

カスタムフィールドの値で絞り込み、ソートする

最後に本記事でやりたかった内容となります。

結果としては、meta_queryで絞り込むカスタムフィールドを指定して、上記でご紹介した方法でソートを指定します。

<?php

  $args = array(
    'post_type' => array('post_type'), //投稿タイプを指定
    'posts_per_page' => '-1', //取得する投稿件数を指定
    'meta_query' => array(
      'key' => 'key', //絞り込みするカスタムフィールドのキーを指定
      'value' => 'value', //絞り込みするカスタムフィールドの値を指定
      'compare' => '=' //絞り込み条件を指定(=は一致)
    ),
    'meta_key' => 'key', //ソートするカスタムフィールドのキーを指定
    'orderby' => 'meta_value', //ソートの基準を指定
    'order' => 'asc' //ソート方法を指定(昇順:asc, 降順:desc)
  );
  $the_query = new WP_Query($args);

  if($the_query->have_posts()){
    while($the_query->have_posts()){
      $the_query->the_post();

      //ここにループ内の処理

    }
  }
  wp_reset_postdata();

?>

meta_queryは下記のページで詳しく解説されていますので、より複雑な絞り込みをする際にご参考にしていただければと思います。

WP_Query

スポンサーリンク

最後に

WP_Queryは様々な条件を指定して投稿を取得することができるクラスです。Wordpressを扱う上で必須の知識となりますので、Codexを見ながら様々な方法で投稿やページを取得してみてください。

以上、WordpressのWP_Queryで絞り込みとソートのカスタムフィールドを指定する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク

カスタムフィールド

WordPressで、記事やページに本文とは別の独自の項目(価格、日付、URLなど)を追加して保存する機能。

詳しく見る