2016-06-22 17 views
1

私は次のようなものがありますwp_query。このクエリは、ACF(高度なカスタムフィールド)の日付フィールドに基づいてカスタム投稿タイプをフィルタリングします。このクエリは、カスタムフィールドで指定された日付が現在の年または将来の日付と等しいすべての投稿を表示します。meta_keyに基づいて今年の投稿のみ表示 - Wordpress

<?php 
    $current_year = date('Y'); 


    $args = array(
    'post_type' => 'result', 
    'meta_key' => 'date_field', 
    'meta_query' => array(
     array(
      'key'  => 'date_field', 
      'compare' => '>=', 
      'value'  => $current_year, 
            )), 
      ); 
      $the_query = new WP_Query($args); ?> 
... 

私がしたいのは、今年の投稿のみを表示することです。将来のクエリーでは、それ以上の年月がまだ示されています。

比較値を削除するか、「==」に変更しようとしました。しかし、投稿は表示されません。理由は、'date_field'の値が('Ymd')という形式で格納されているためです。

私はACF documentationを見て、そのような日付フィールドから年を抽出する方法を発見:

$date = get_field('date_field', false, false); 
$date = new DateTime($date); 
$date->format('Y'); 

しかし、私は私のクエリ内でその値を実装できるかどうかはわかりません。キー値を$dateに変更しようとしましたが、投稿が表示されません。

+0

として日付を保存していますか?また演算子は ''=''でなければなりません。 – Erevald

+0

はい私はフィールドの値を印刷することができます、その部分は問題ありません、私はちょうど私が私のクエリにそれを実装することができますかわからない。 – Christophvh

+0

フィールドの価値は何ですか? – Erevald

答えて

0

ACFは `日時を作成する前に、あなたは` get_field( 'DATE_FIELD')の値を印刷することができます‘YYYYMMDD’

$args = [ 
    'post_type' => 'result', 
    'meta_key'  => 'date_field', 
    'meta_value' => date("Ymd"), 
    'meta_compare' => '>=', 
]; 
$query = new WP_Query($args); 
関連する問題