サポート » プラグイン » Advanced Custom Fieldsでカテゴリーに設定したチェックボックスで記事を抽出

  • お世話になります。
    数十人の方にコラムを書いていただくサイトの運用に関わっていまして、
    コラムニストをワードプレスのカテゴリーとして設定しています。

    そのコラムニスト一覧(WPカテゴリーの一覧)を表示するページにて
    こちらのフォーラム( yukki様コードより)を参考に、
    最新記事を投稿されたコラムニストの方が上位に来るようにしているのですが、
    コラムニストの人数が増えてきましたので、さらにコラムニストを経営関連や飲食店関連などの分類分けを行いたいということになりました。
    複数の分類に所属できるコラムニストもいらっしゃいますので、一つの親しか設定できないカテゴリーによる分類ではなく、Advanced Custom Fields(アドバンスカスタムフィールド)でコラムニスト(WPカテゴリー)にチェックボックスを設定し、
    そちらを元にループを抽出をしたいと考えています。(但し、チェックボックスによるループの抽出は1種類だけです。)

    こちらのフォーラムや、こちらのページを参考に、こちらの内容でテストしてみたのですがうまく動かないです。

    Advanced Custom Fields 設定内容】

    フィールド名 : specialty_field
    フィールドタイプ: チェックボックス
    選択肢: strategy : 営業・販売戦略
         brand : 新事業・ブランド
         system : 内部体制・システム
         manufacturer : メーカー・加工業
         service : 飲食小売・サービス
         president : 社長・お金・その他

    <?php $cat_id = get_queried_object()->cat_ID;//アーカイブページの場合
          $post_id = 'category_'.$cat_id;
          $specialtyfield = get_field('specialty_field',$post_id); //コンサルティングカテゴリー
    ?>
    <?php
    $catList = get_categories('exclude=1,6,8,48');
    foreach ($catList as $val) {
            $id = $val->cat_ID;
            $post_id = 'category_'.$id;
            $specialtyfield = get_field('specialty_field',$post_id); //コンサルティングカテゴリー
            $resPost = get_posts(array(
                        'category' => $id,
                        'orderby' => 'post_date',
                        'posts_per_page' => 1,
    
                        // ↓ 以下:追加分
                        'meta_query' => array(
                            array(
                                'key' => $specialtyfield,
                                'value' => '"strategy"',
                                'compare' => 'LIKE'
                            )
                        )
                        //追加分ここまで
    
                    ));
            foreach ($resPost as $post) {
              $resArr []= $post;
            }
        }
        foreach($resArr as $key => $row){
          $post_date[$key] = $row->post_date;
        }
        array_multisort($resArr,SORT_DESC,$post_date);
        foreach($resArr as $post):
        setup_postdata($post);
    
      //以下ループ内容?>
    
      <div>
        <?php $cats = get_the_category(); //シングルの場合
              $cat_id = $cats[0]->term_id; //シングルの場合
              $post_id = 'category_'.$cat_id;
              $specialtyfield = get_field('specialty_field',$post_id); //コンサルティングカテゴリー
          ;?>
        <a href="<?php the_permalink(); ?>"><?php the_title(); //  ?> | <?php the_category( '/'); ?></a>
        <?php if ( $specialtyfield ): ?>
          <ul><li><?php echo implode('</li><li>', $specialtyfield); ?></li></ul>
        <?php endif; ;?>
      </div>
    
      <?php //ループ内容ここまで
       endforeach; ?>

    phpを理解して作成しているわけではないので、間違いも多数あるかと思いますが、
    皆様のお知恵をお貸しいただければありがたいです。
    何卒よろしくお願いいたします。

  • トピック「Advanced Custom Fieldsでカテゴリーに設定したチェックボックスで記事を抽出」には新たに返信することはできません。