いろいろなサイトを参考にしながらWordpressでカスタムフィールドに設定している値が検索に当てはまるときにだけ投稿を表示するようなプログラムを書いています。
具体的には、カスタムフィールドに設定しているWallの値が「Formで取得した最低値」以上、且つ「Formで取得した最高値」以下の場合だけ表示させたいのですが、下記のコードだと条件に当てはまらない投稿まで(投稿ページすべて)表示されてしまいます。
コメントアウトしているWallの値が「Formで取得した最低値」以上のみを表示させることは出来ます。
PHP
<?php /* $args = array( 'posts_per_page' => -1 'meta_key' => 'Wall', //カスタムフィールドのキー 'meta_value' => $_GET["WallMin"], //カスタムフィールドの値 'meta_compare' => '>=' //'meta_value'のテスト演算子 ); */ $args = array( 'meta_query' => array( 'relation' => 'AND', array( 'meta_key' => 'Wall', 'meta_value' => $_GET["WallMin"], //カスタムフィールドの値 'meta_compare' => '>=', ), array( 'meta_key' => 'Wall', 'meta_value' => $_GET["WallMax"], //カスタムフィールドの値 'meta_compare' => '<=', ), ), ); echo "条件は".$_GET["WallMin"]."~".$_GET["WallMax"]; $my_query = new WP_Query($args); if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); ?> <?php the_title(); ?><?php the_post_thumbnail(); ?><?php the_excerpt(); ?> <?php endwhile; endif; wp_reset_postdata(); ?>
改善点、チェックする点などご教示お願いいたします。
まだ回答がついていません
会員登録して回答してみよう