Wordpressのオリジナルテーマ作成に関する質問です。
◆最終的にやりたいこと
カスタム投稿Aの投稿内容を条件により絞り込んで取得し、別ページ(カスタム投稿B)で表示したいです。
表示する際は、ビジュアルエディターにショートコードを記載して取得するようにする想定です。
絞り込み条件
※①と②はAND条件
①カスタム投稿Aのカテゴリーがカスタム投稿Bのカテゴリーと一致
→それぞれのカスタム投稿にカスタムタクソノミーを追加し、スラッグを一致させる
→カスタム投稿Bのカテゴリーを確認して、同じカテゴリーの記事を取得
②カスタム投稿Aのタグ(カスタムタクソノミー)をショートコード記載時に合わせて記載し、一致するスラッグの記事を取得
◆現状でできないこと
ショートコードで取得した記事ループ内のカスタムフィールド(ACFで作成)の値が取得できない
◆現状のコード
以下、function.phpに記載しています。
PHP
1function testget_func($atts){ 2 $atts = shortcode_atts(array( 3 'tag' => '' 4 ),$atts); 5 if ($terms = get_the_terms($post->ID, 'cat_bbb')) { 6 foreach ( $terms as $term ) { 7 $args = array( 8 'post_type' => 'aaa', 9 'posts_per_page' => 3, 10 'tax_query' => array( 11 'relation' => 'AND', 12 array( 13 'taxonomy' => 'cat_bbb', 14 'field' => 'slug', 15 'terms' => $term -> slug 16 ), 17 array( 18 'taxonomy' => 'tag_bbb', 19 'field' => 'slug', 20 'terms' => $atts['tag'], 21 ), 22 ), 23 ); 24 $my_posts = get_posts($args); 25 } 26 } 27 foreach ($my_posts as $post) : setup_postdata($post); 28 $str.='<div class=“design”>’; 29 $str.= '<p>'.the_field('description').'</p>'; 30 $str.='</div>'; 31 endforeach; 32 wp_reset_postdata(); 33 echo $str; 34} 35add_shortcode('testget', 'testget_func');
●「aaa」はカスタム投稿Aの記事タイプ
●「cat_bbb」はカスタム投稿Bの現在の記事のカテゴリー
●「cat_aaa」はカスタム投稿Aの取得したい記事が所属するカテゴリー(カスタムタクソノミー)
●「tag_aaa」はカスタム投稿Aの取得したい記事が所属するタグ(カスタムタクソノミー)
●「description」はカスタム投稿Aの中に記載してあるカスタムフィールドの値
●ショートコード記載時は[testget tag="指定のタグ"]で取得予定
=====
こちらのコードでカテゴリとタグで絞られた記事ループの取得までは確認できています。
(<div class=“design”>のデザインが反映されており、表示されている記事の数が指定のカテゴリとタグで絞った記事数と一致するため)
しかし、the_field('description’)で取得しているカスタムフィールドの内容のみが取得できていない状況です。
こちら、原因をいろいろ調べているのですが、究明に至らず、皆様のお知恵をお借りできますと幸いでございます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/14 11:28
2022/01/28 00:35
2022/01/28 00:46