2016-05-13 4 views
0

Ich verwende ACF Pro. Ich habe eine Filtereinrichtung, die ACF sagt, nur veröffentlichte Beiträge anzuzeigen.ACF - Wie schließe ich Beiträge, die älter als ein Jahr sind, aus dem Beziehungsfeld aus?

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); 

Das funktioniert gut. Allerdings möchte ich erweitern diese Funktion, so dass nur Beiträge aus dem letzten Jahr angezeigt werden; Ältere Beiträge sollten daher ausgeschlossen werden.

Wer hat Ideen, wie man das macht?

Ich muss irgendwie den folgenden Test im Filter anwenden:

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

das Ergebnis dieser auf $args['post_date'] nicht funktionieren natürlich Vergleich, weil ich ein boolean Ergebnis zu einem Datum Zeichenfolge zu vergleichen würde.

Danke!


soultion:

ich dies für alle, herausgefunden, wer über diese gleiche Anforderung kommen könnte.

Verwenden Sie einfach $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); 

Dies zeigt nur die Posts, die vor einem Jahr von heute gemacht wurden.

Hoffe es hilft jemand da draußen!

WP Docs auf Datum Parameter für WP_Query: http://codex.wordpress.org/Class_Reference/WP_Query#Date_Parameters

Antwort

1

Wenn diese Argumente WP_Query, dann könnte man versuchen, das date_query Eingabeargument:

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

in Ihrem Rückruf.

+0

Dies führte mich auf den richtigen Weg zu der Antwort, aber war nicht ganz die genau funktionierende Lösung. Ich werde das in meiner Frage veröffentlichen. Wenn du deine Antwort mit dem, was ich poste, aktualisieren möchte, akzeptiere ich die Antwort, da du auf dem richtigen Weg bist. –

+0

gut zu hören, dass Sie einige Fortschritte hatten, aber beachten Sie, dass die 'After' /' Before' Parameter 'StrTotime' Strings unterstützen, also sollten wir nicht das' Ymd G: i: s' Format Ich denke ''vor 1 Jahr brauchen "und" -1 Jahr "sollten die gleichen Ergebnisse @ MichaelGiovanniPumo – birgire

+0

Ahh richtig geben. Okay cool. Nun, ich werde das als Antwort akzeptieren. Danke für Ihre Hilfe! –

Verwandte Themen