query_posts(WP_Queryクラス)でカスタムフィールドを使った絞り込み
-
いつもお世話になります。
「meta_query」を使った絞り込みがうまく反映されないのですが
どこが間違っているのか分からず、ご教授お願い致します。- オリジナルテーマ
- カスタム投稿「blog」紐付けられたカスタムタクソノミー「cat_blog」のターム「campaign」の記事
- カスタムフィールドテンプレートで設定した、キー「limit_date」(date = true、dateFormat = yyyy/mm/dd)で日付入力
以上の記事を、sidebar.phpで「limit_date」以前の記事を出力したいと考えています。
sidebar.php
<?php $currnet_date = date_i18n( 'Y/m/d' );//今日を取得 $campaigns = new WP_Query( array( 'post_type' => 'blog', 'cat_blog' => 'campaign', 'posts_per_page' => 2, 'meta_query' => array( 'key' => 'limit_date', 'value' => $currnet_date, 'compare' => '<=',//カスタムフィールドの方が大きい 'type' => 'DATE' ) )); if ( $campaigns->have_posts() ) : while ( $campaigns->have_posts() ) : $campaigns->the_post(); ?> <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">キャンペーン情報</a></li> <p>今日は<?php echo $currnet_date; ?>です。有効期限は<?php if (post_custom('limit_date')){echo post_custom('limit_date');} ?>です。</p> <?php endwhile; ?> <?php else: ?> <p>今日は<?php echo $currnet_date; ?>です。有効期限は<?php if (post_custom('limit_date')){echo post_custom('limit_date');} ?>でした。</p> <?php endif; ?>
出力結果
<li><a href="http://hogegohe.co" title="hogegohe">キャンペーン情報</a></li> <p>今日は2015/07/29です。有効期限は2015/08/28です。</p> <li><a href="http://fugafuga.co" title="fugafuga">キャンペーン情報</a></li> <p>今日は2015/07/29です。有効期限は2015/06/29です。</p>
上記のように、
日付が古くても新しくても絞り込み結果に入れられ、同じように出力されています。
Codex等では query_posts で書かれているのですが
全ページで表示する sidebarなので、できれば使わないほうが良いのかなと考えたのですが
それが間違っているのでしょうか。ご指摘のほど、どうぞよろしくお願いいたします。
2件の返信を表示中 - 1 - 2件目 (全2件中)
-
$args = array( 'post_type' => 'product', 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'color', 'value' => 'blue', 'compare' => 'NOT LIKE' ), array( 'key' => 'price', 'value' => array( 20, 100 ), 'type' => 'numeric', 'compare' => 'BETWEEN' ) ) ); $query = new WP_Query( $args );
WP_Query 5.12 カスタムフィールドパラメータ のサンプルコードをよく見て下さい。
meta_query を指定する場合は、array の中に更に、arrayによって key, value などの指定をする形式となります。これは、複数のカスタムフィールドを指定する際にどうしても必要となります。
補足:WP_Query を使った場合でも、ループ処理の後(endwhile;の後)に wp_reset_postdata(); を行う必要があります。
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「query_posts(WP_Queryクラス)でカスタムフィールドを使った絞り込み」には新たに返信することはできません。