BLOG

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

| HTML/CSS/PHPWordPress

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

通常のソートは

$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で指定する。
まぁ、基礎中の基礎ですが、使ってないと忘れるものですね。
ほな、また

PAGE TOP