更新 2021 / 4 / 28

カスタムフィールドのkeyで絞り込みしたカスタム投稿の一覧表示

やりたかった事

カスタムフィールドのpriceと言うkeyで取得して、priceに入力された数字(価格)で高い順にカスタム投稿を並べたかった。

archive.phpやtaxonomy.phpなど


                <?php
                  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
                  $posts_per_page = 12; //1ページの中に出力する記事数を定義
                  query_posts($query_string . '&posts_per_page='.$posts_per_page.'&paged=' . $paged);
                  $args = array(
                    'post_type' => 'house', //カスタム投稿タイプ
                    'posts_per_page' => $posts_per_page, //1ページの中に出力する記事数(上の変数で定義する)
                    'paged' => $paged,
                    'order' => 'DESC', //並び順 ASCまたはDESC
                    'meta_key' => 'price', //並び替えに利用したいカスタムフィールドのキーを指定
                    'orderby' => 'meta_value_num', //数値の場合はmeta_value_num
                    'tax_query' => array( 
                            array(
                              'taxonomy' => 'houselist', //タクソノミーを指定
                              'field' => 'slug', //ターム名をスラッグで指定する
                              'terms' => array( 'area' ) //表示したいタームをスラッグで指定
                            ),
                          ),
                  );
                  ?>

                  <?php $my_query_sample = new WP_Query( $args ); ?>
                  <?php if ($my_query_sample->have_posts()): ?>
                  <?php while ( $my_query_sample->have_posts() ) : $my_query_sample->the_post(); ?>
                          <!--ループ-->
                  <?php endwhile; ?>
                  <?php else: ?>
                      <p>現在表示できる記事はありません。</p><br>
                  <?php endif; ?>

                  <?php if(function_exists('wp_pagenavi')) { //ページネーションプラグイン
                    wp_pagenavi(array('query'=>$my_query_sample));
                  } ?>