2016-05-13 3 views
0

私はACF Proを使用しています。 ACFに公開されている投稿を表示するように指示するフィルタ設定があります。ACF - 1年以上経過した投稿を関係フィールドから除外するにはどうすればよいですか?

function acf_relationship_filter($args, $field, $post_id) { 
    $args['post_status'] = array('publish'); 
    return $args; 
} 

add_filter('acf/fields/relationship/query/name=featured_items', 'acf_relationship_filter', 10, 3); 

これはうまく動作します。ただし、この機能を拡張して、昨年作成された投稿のみが表示されるようにしたいと思います。古い投稿は除外されるべきです。

誰でもこの方法に関するアイデアはありますか?

私は何とかフィルタに次の試験を適用する必要があります:私は、日付文字列にboolean型の結果を比較することと思いますので、

strtotime($args['post_date']) > strtotime('-365 day'); 

はもちろんの$args['post_date']文句を言わない仕事でこの結果を比較します。

ありがとうございます!


SOULTION:

私はこれと同じ要件に遭遇するかもしれない人のためにこれを考え出しました。

$args['date_query']を使用してください。

function acf_relationship_filter($args, $field, $post_id) { 

    $args['post_status'] = array('publish'); 
    $args['date_query'] = array(
     'after' => date('Y-m-d G:i:s', strtotime('-1 year')), 
     'inclusive' => true 
    ); 

    return $args; 

} 

add_filter('acf/fields/relationship/query/name=featured_items', 'acf_relationship_filter', 10, 3); 

これは、今日から1年後に投稿された投稿のみを表示します。

誰かを助けてくれることを願っています!

WPドキュメントWP_Queryの日付パラメータに関する:あなたのコールバック内

$args['date_query'] = [ 
    [ 
     'after'  => '1 year ago', // <-- your strtotime string 
     'inclusive' => true, 
    ] 
]; 

http://codex.wordpress.org/Class_Reference/WP_Query#Date_Parameters

答えて

1

これらはWP_Queryの引数であれば、あなたはdate_query入力引数を試みることができます。

+0

これは、答えへの正しい道を導いてくれましたが、実際には正確な解決策ではありませんでした。私は私の質問でそれを投稿します。私が投稿したものであなたの答えを更新したいのであれば、私はその答えを受け入れます。 –

+0

あなたには進歩はありますが、 'after' /' before'パラメータは 'strtotime'文字列をサポートしているので、' Ymd G:i:s'フォーマットは必要ありません。 」と「-1年」は同じ結果を与えるはずです@MichaelGiovanniPumo – birgire

+0

ああ、そうです。よかったよ。さて、私はこれを答えとして受け入れます。ご協力いただきありがとうございます! –

関連する問題