サポート » 使い方全般 » meta_queryでのIN指定ができない

  • 解決済 keytone

    (@keytone)


    初めて質問いたします。

    現在、下記の2種類のカスタムフィールドの検索フォームを作成中です。
    (1)都道府県(place)
    (2)種別(type)

    「A県もしくはB県の中のAタイプもしくはBタイプ」の投稿をピックアップする、という検索です。

    検索フォームは(1)(2)ともにチェックボックスで複数選択可とし、POSTで受け渡します。

    $qarr = array(
    ‘post_status’ => ‘publish’, ‘post_type’ => ‘post’, ‘meta_query’ => array( ‘relation’=>’AND’,)
    );

    $condition1 = $_POST[‘place’];
    array_push($qarr[“meta_query”],array(
    ‘key’ => ‘place’,
    ‘value’ => $condition1,
    ‘compare’ => ‘IN’
    ));

    $condition2 = $_POST[‘type’];
    array_push($qarr[“meta_query”],array(
    ‘key’ => ‘type’,
    ‘value’ => $condition2,
    ‘compare’ => ‘IN’
    ));

    (以下略)

    としてみたのですが、条件に引っかかりません。
    valueを配列ではなく1項目だけとし、compareを’LIKE’にした場合は動作するのですが、
    配列+INにすると検索結果が0となります。

    初歩的な勘違いがあるのかと思いますが、どうかご指摘いただけないでしょうか。
    よろしくお願いいたします。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 keytone

    (@keytone)

    カスタムフィールドをAdvanceCustomFieldを用いて設定していたことで、チェックボックスの配列データがシリアライズされていたことが原因でした。

    CustomFieldTemplateだと配列がシリアライズされないため、こちらに切り替えたところうまく動作しました。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「meta_queryでのIN指定ができない」には新たに返信することはできません。