2017-08-02 17 views
1

私はACF関係フィールドを使用しました。フィールド名はinternational_mins_category_a_countriesです。フィールドは複数の値を持っています。ACF:検索関係フィールド

私は((get_field("international_mins_category_a_countries", get_the_ID()))、それを印刷する場合は、配列を出力します -

array 
(
    [0] => 737 
    [1] => 734 
    [2] => 723 
    [3] => 1484 
} 

今私が値を持つの記事をフィルタリング/検索しようとしています737を言います。

しかし、私は結果を得ていません。

Code I have used to filter that is --- 

'meta_query' => array(
      array(
       'key'  => 'international_mins_category_a_countries', 
       'value'  => '737', 
       'compare' => 'IN', 
      ), 
     ) 

結果はありません。誰も助けることができますか?

+0

だから、あなたはあなたのrelationsshipで唯一のIDを返している - しかし、あなたは実際には全体postオブジェクトを返すためにそれを設定することができます - あなたはすでに、すべてのデータを持ってそのように。 – Stender

+0

はい私はすべてのデータを持っていますが、すべてのデータを選択したくないのですが、そのIDを持っているものを選択したいと思います。 – Alice

+0

もう少し説明できますか?例えば、どのような関係フィールドですか?また、WP Queryの引数全体を提供することもできます。 – justkidding96

答えて

1

ACF関係フィールドのデータは、シリアライズされた配列としてデータベースに格納されますが、このタイプのクエリには理想的なフォーマットではありません。配列は、複数のレコードとして格納されるのではなく、データベース内の単一の文字列に集約されています。

これは、一致するレコードを見つけるためにLIKE句を使用する必要があることを意味します。

不正確な一致(例:7374,5737など)を防ぐために、比較引数をLIKEに設定する必要があります。

'meta_query' => array(
    array(
     'key'  => 'international_mins_category_a_countries', 
     'value' => '"737"', 
     'compare' => 'LIKE', 
    ), 
) 

ACFはあなたにこのデータが保存されているが、私はLIKEクエリは、多くの場合、パフォーマンスが低下することを指摘する方法を超える多くの制御を提供するつもりされていません。

ドキュメント:https://www.advancedcustomfields.com/resources/querying-relationship-fields/

+0

なので、IDが7の場合は737も一致します – Alice

+0

いいえ、それはIDを囲む二重引用符の目的です。彼らはそのような誤ったマッチを防ぐつもりです。 –

+0

大丈夫です...お試しください.... – Alice

関連する問題