BLOG

カスタムフィールドを含む複数の条件でソートをする【WordPress】

| WordPress

複数の条件でソートする方法
初歩的なことですが、忘れてたのでメモメモ

通常のソートは

$args = array(
  'post_type' => 'post',
  'posts_poer_page' => 12,
  'orderby' => 'date',
  'order' => 'DESC'
);

$query = new WP_Query($args);

とまぁこんな感じですよね。
それを複数になるとこんなイメージ

$args = array(
  'post_type' => 'post',
  'posts_poer_page' => 12,
  'orderby' => array(
    'title' => 'ASC',
    'date' => 'DESC'
  )
);
$query = new WP_Query($args);

と、orderbyに配列で指定するだけです。
んでカスタムフィールドを含む場合はこうです。

$args = array(
  'post_type' => 'post',
  'posts_poer_page' => 12,
  'orderby' => array(
    'meta_value' => 'ASC',
    'date' => 'DESC'
  ),
  'meta_key' => 'rank'
);
$query = new WP_Query($args);

上の複数の状態にmeta_keyを指定するだけです。
ついでに、複数のカスタムフィールドでソートするのはこうです。

$args = array(
  'post_type' => 'post',
  'posts_poer_page' => 12,
  'meta_query' => array(
    'relation' => 'AND',
    'pickup' => array(
      'key' => 'pickup',
      'type' => 'BINARY'
    ),
    'cost' => array(
      'key' => 'cost',
      'type' => 'NUMERIC'
    )
  ),
  'orderby' => array(
    'pickup' => 'DESC',
    'cost' => 'ASC'
  )
);
$query = new WP_Query($args);

meta_query使って、名前つけて、orderbyで指定する。
まぁ、基礎中の基礎ですが、使ってないと忘れるものですね。
ほな、また

RECENT POSTS

WordPressでIDから本文を取得する

[PHP] 配列内の空白を削除「array_filter」「array_diff」

[PHP] 配列内の同じ値をまとめる「array_unique」

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

連想配列から特定の値を取得して配列にいれちゃうってやつ

JavaScriptで取得するGETの値

【CSS】text-decorationのカスタマイズができるの知ってた?

CSSでフッターの下に隙間ができないように調整する

「reduce」を使って配列を値を処理する

data属性の取得・設定・更新【JavaScript】

CATEGORY

POPULAR POSTS

PAGE TOP