array_merge関数の使い方

array_merge関数は対象の配列の最後に追加する配列を結合します。第一引数に対象の配列、第二引数に追加する配列を指定します。

array_push(対象の配列,追加する配列);

以下はWordpressのカスタム投稿をカスタムタクソノミーで絞り込んでWP_Queryで出力する際の条件です。

<?php
$args = array(
  'post_type' => 'faq',
  'post_status' => 'publish',
  'posts_per_page' => -1,
  'tax_query' => array(
    array(
      'relation' => 'OR',
      'taxonomy' => 'faq-category',
      'field' => 'term_id',
      'terms' => $terms,
    )
  )
);
?>

カスタムタクソノミーの絞り込み部分を後から配列に結合する場合、array_merge関数を使用して以下のように記述します。

$args = array(
  'post_type' => 'faq',
  'post_status' => 'publish',
  'posts_per_page' => -1,
);

$add_args = array(
  'tax_query' => array(
    array(
      'relation' => 'OR',
      'taxonomy' => 'faq-category',
      'field' => 'term_id',
      'terms' => $terms,
    )
  )
);
$args = array_merge($args, $add_args);

なお[]を使用して以下のように記述しても同様の結果が得られます。

$args = array(
  'post_type' => 'faq',
  'post_status' => 'publish',
  'posts_per_page' => -1,
);

$args['tax_query'][] = array(
  'relation' => 'OR',
  'taxonomy' => 'faq-category',
  'field' => 'term_id',
  'terms' => $terms,
);
タイトルとURLをコピーしました