Abfrage von Beiträgen, wenn der Metaschlüssel mit beginnt

Ich muss Posts mit einem Metaschlüssel finden, der mit dem aktuellen Jahr + dem aktuellen Monat (z. B. 201502) beginnt, aber der tatsächliche Wert könnte auch jeden Tag innerhalb dieses Monats enthalten (z. B. 20150214).

Der wirklich knifflige Teil ist, dass ich versuche, dies mit ACF’s Repper und Date Picker Feldern zu tun. Ich habe es funktioniert, wo es True zurückgeben kann, wenn ich nach Posts frage, die eine vollständige Datumsstring (20150214) enthalten, aber ich kann nicht herausfinden, wie es nur für das Jahr und den Monat zu tun ist.

Hier ist mein aktueller Code:

// custom filter to replace '=' with 'LIKE' function my_posts_where($where) { $where = str_replace("meta_key = 'show_times_%_date'", "meta_key LIKE 'show_times_%_date'", $where); return $where; } add_filter("posts_where", "my_posts_where"); // get results $this_month = date("Ym") . "14"; // this doesn't work if I remove the . "14" $the_query = new WP_Query(array( "numberposts" => -1, "post_type" => "plays_events", "meta_query" => array( array( "key" => "show_times_%_date", "value" => $this_month, ) ), )); 

Ich bin wirklich verwirrt von der my_posts_where aber ich kopierte und modifizierte es von dieser Seite .

Im Wesentlichen ist es die “Wert” -Option, die ich herausfinden muss, wie man $this_month . $any_day $this_month . $any_day .

Vielen Dank.

Solutions Collecting From Web of "Abfrage von Beiträgen, wenn der Metaschlüssel mit beginnt"

Ich habe es herausgefunden:

 $the_query = new WP_Query(array( "numberposts" => -1, "post_type" => "plays_events", "meta_query" => array( array( "key" => "show_times_%_date", "value" => $this_month . "[0-9]{2}", "compare" => "REGEXP" ) ), )); 

Ich glaube, alles, was Sie hier tun müssen, ist, den Tag aus Ihrem $this_month Parameter zu entfernen und den LIKE Vergleich (mit einem abschließenden % ) zu verwenden, um den Wert abzufragen –

 $this_month = date("Ym"); $the_query = new WP_Query(array( "numberposts" => -1, "post_type" => "plays_events", "meta_query" => array( array( "key" => "show_times_%_date", "value" => $this_month . "%", "compare" => "LIKE" ) ), )); 

Überprüfen Sie den Abschnitt WP_Query in der classnreferenz für WP_Query