カスタム投稿のタクソノミーで絞り込み表示させる

WordPress
スポンサーリンク



カスタム投稿のタクソノミーで絞り込み表示させる

投稿タイプのカテゴリじゃなくて、カスタム投稿のタクソノミー(カテゴリ)のデータを引っぱってくるにはどうしたらいいんだろう?

なかなか調べても見つけられず、やっとできたので忘備録として残しておきます。また同じようなところで困ってる人の役に立てたら嬉しいです。まずは、カスタム投稿とカスタムフィールド の設定をしてください。

※プラグインを使って、カスタム投稿と、カスタムフィールド を設定します。

①カスタム投稿タイプと、タクソノミーを、CPT UIプラグインを使って作る。

②Custom Field Suiteプラグインで、カスタムフィールドを作って、管理画面の投稿記事にテキストなど入力。

やり方はこちら→カスタム投稿をプラグインで作る

カスタム投稿の設定が終わったら、カスタム投稿一覧ページ(archive-〇〇.phpファイル)に、タームごとに出力してみます。

以下のように書き込んで出力すると、

カスタム投稿のカテゴリ(タクソノミー)の項目(ターム)ごとに表示できます。

 例)ターム:まんじゅう、最中、水ようかんなど

<?php
                $args = array(
                    'post_type' => 'product', // カスタム投稿
                    'order' => 'ASC', // 昇降順
                    'tax_query' => array(
                        array(
                            'taxonomy' => 'tagtype', // タクソノミー
                            'field' => 'slug',
                            'terms' => 'manju', // ターム 
                        )
                    )
                );
                $the_query = new WP_Query($args);
                ?>


                <div class="">

                    <?php if ($the_query->have_posts()) : ?> // 投稿記事のループ
                        <?php while ($the_query->have_posts()) : $the_query->the_post(); ?>

                            <!-- 投稿内容 -->
                            <a href="<?php the_permalink(); ?>">  // single-○○.phpへのリンク
                                <div class="item-box">
                                    <div class="item-img">
                      <img src="<?php echo CFS()->get('product-img'); ?>"> // cfsの画像の出力
                                    </div>
                                    <p><?php echo CFS()->get('product-title'); ?></p> // cfsのテキストの出力
                                </div>
                            </a>

                        <?php endwhile; ?>
                        <?php wp_reset_postdata(); ?>
                    <?php endif; ?>    // 投稿記事のループ終わり
                </div>

・’post_type’ => ‘product’, // カスタム投稿のスラッグ名を書きます。

・’taxonomy’ => ‘tagtype’, // タクソノミースラッグ名(CPT UIで作った、カテゴリスラッグ名

・’terms’ => ‘manju’, // ターム(カスタム投稿のカテゴリで登録した、カテゴリスラッグ名)

ループはカスタム投稿の一覧ページ(archive-〇〇.php)のため、サブループを使います。

<?php $the_query = new WP_Query($args); ?>
<?php if ($the_query->have_posts()) : ?> // 投稿記事のループ
<?php while ($the_query->have_posts()) : $the_query->the_post(); ?>

参考サイト↓

https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Query
タイトルとURLをコピーしました