お世話になっております。
固定ページにカスタム投稿「店舗一覧(shops)」から、カスタムフィールド値「店舗ジャンル」に「飲食店(スラッグ:restaurant id:20)」
という値を持った投稿のみを5件取得する、
ということを実現したいのですが、うまくいかず悩んでおります。
php
1 $args = array( 2 'posts_per_page' => 5, 3 'post_type' => 'shops', 4 5 ); 6 7 $rand_posts = get_posts($args); 8 var_dump($rand_posts); 9
これで変数の中身を確認すると、ひとまず店舗一覧から5件取得できていることがわかりました。
そこから絞り込みをすると、うなくいかないのです。
php
1 $args = array( 2 'posts_per_page' => 5, 3 'post_type' => 'shops', 4 'meta_key' => '店舗ジャンル', 5 'meta_value' => 20, 6 ); 7 8 $rand_posts = get_posts($args); 9 var_dump($rand_posts);
こうすると取得件数は0となってしまいます。
https://cotodama.co/custom-field_list/
などを参考に、
'meta_query'を使ってみても、だめでした。
該当のカスタムフィールドはプラグインで作成されており、
フィールド名:店舗ジャンル
フィールドタイプ:タクソノミー
返り値:タームID
となっております。
実際絞り込みをせずshopsの投稿を取得して、ループの中でフィールドの値を表示させてみると、
php
1 foreach ($rand_posts as $post) : 2 setup_postdata($post); 3 $tagu = get_field('店舗ジャンル')[0]; 4 echo $tagu; //20 5 endforeach 6
ダッシュボードの店舗ジャンル一覧でマウスオーバーした際表示されるidと一致しています。
指定の仕方か、根本的になにか間違っているのでしょうか。
どなたかヒントをいただけましたら幸いです。
よろしくお願いいたします。
=====追記です
'meta_value' => 20, は数値を指定しているので
php
1 'meta_value_num' => 20,
と変更すると、絞り込みが全く行われない状態で店舗一覧の投稿が取得されました。
php
1'meta_value' => 'restaurant', //スラッグ
とすると、取得は0件になります。。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。