meta_queryでACFでのカスタムフィールドの条件で抽出できない
-
お世話になります。
多数のユーザーが投稿するサイトの運営に携わっているのですが、
ユーザーのコラムに書籍カテゴリーの記事を関連付けしたいのです。
書籍カテゴリーに記事にAdvanced Custom Fieldsのタイプ「ユーザー」で、
ユーザー名を設定しているのですが、以下のコードでうまく記事が抽出できません。
ACFの設定は、共著の場合もあるので、Multi Select で設定しています。お気付きになった点や、問題点等あれば、お教えいただければ幸いです。
何卒よろしくお願いいたします。<?php $author_id = $post->post_author;//ユーザーID $author_name = get_the_author_meta('display_name',$author_id) ; $paged = (int) get_query_var('paged'); $args = array( 'paged' => $paged, 'category_name' =>'books',//カテゴリー名 'posts_per_page'=> -1, 'post_type' => 'post', 'meta_query' => array( array( 'key'=>'booksWriter',//ACFのフィールド名 'value'=> $author_name, 'compare'=>'IN', ) ) ); $posts = get_posts( $args ); ?> <?php if ($posts):?> <?php foreach($posts as $post) : setup_postdata($post)?> -----------中略--------------------- <?php endforeach;?> <?php endif;?>
-
Advanced Custom Fieldsでは複数値が入る可能性のあるフィールドは、変数値がシリアライズされて入っています。
要するに、値がそのまま入っているのではないので、compareをlikeにするか、Custom Field TemplateやSmart Custom Fieldsなどのシリアライズされないプラグインをお使いください。munyagu様
ご返信いただき、ありがとうございます。
すでにcompareをlikeにしても、何も表示されず、行き詰まっておりました。
Advanced Custom Fieldsの複数値はクセがあるとどこかで読んだことがあったのですが、
そのあたりに原因がありそうですね。実装するかどうかも要検討ですが、
似たような状況の方の対策方法とか、もしあればとも思いますので
もうしばらく、解決済みにしないでフォーラムに置いておこうかと思います。お世話になります。
いろいろ試した結果、valueの値を、名前ではなくIDの設定に、またIDをダブルコーテーションでくくることで、望み通りの結果が得ることができました。
こちらで解決済みとさせて頂きます。
ありがとうございました。<?php $author_id = $post->post_author;//ユーザーID $author_name = get_the_author_meta('display_name',$author_id) ; $paged = (int) get_query_var('paged'); $args = array( 'paged' => $paged, 'category_name' =>'books',//カテゴリー名 'posts_per_page'=> -1, 'post_type' => 'post', 'meta_query' => array( array( 'key'=>'booksWriter',//ACFのフィールド名 'value'=> '"'.$author_id.'"', 'compare'=>'IN', ) ) ); $posts = get_posts( $args ); ?> <?php if ($posts):?> <?php foreach($posts as $post) : setup_postdata($post)?> -----------中略--------------------- <?php endforeach;?> <?php endif;?>
- トピック「meta_queryでACFでのカスタムフィールドの条件で抽出できない」には新たに返信することはできません。