Erhalten Sie Beiträge zwischen benutzerdefinierten Daten

Ich habe ein event CPT und eine Meta-Box mit einem Datum erstellt. Ich habe das Datum als post_meta in der Form post_meta gespeichert.

Jetzt möchte ich einen Shortcode erstellen, der alle Beiträge abfragt, deren Daten die Bedingung erfüllen (zB)

 (01.05.2013 <= {event_date} <= 21.08.2013) 

Ich könnte die Strings in Date-Objekte oder was auch immer konvertieren. Aber ich habe nicht einmal eine leichte Annäherung, wie man im Vergleich der kundenspezifischen meta_values .

Kannst du dir einen guten Startpunkt vorstellen? Oder würde ich einen komplett anderen Ansatz brauchen?

BEARBEITEN

Ich habe plötzlich etwas gefunden (vielleicht habe ich die richtigen Google-Ideen). Was ich gelesen habe vorgeschlagen, die Daten in yyyy-mm-dd Form zu speichern. Also kam ich auf die Frage:

 query_posts(array('meta_query' => array(array('meta_key' => 'ows_schedule_field-date', 'meta_value' => '2013-08-15', 'type' => 'date', 'compare' => '==')))); 

Ich habe einen Post mit genau diesem Datum. Aber leider gibt die Abfrage einen zufälligen anderen Beitrag zurück, der dieses Meta nicht einmal hatte.

BEARBEITEN 2

Ich habe es auch ohne Erfolg versucht …

 query_posts(array('post_type' => 'schedule_event', 'meta_key' => 'ows_schedule_field-date', 'meta_query' => array(array('key' => 'ows_schedule_field-date', 'value' => '2013-08-15', 'type' => 'date', 'compare' => '>=')))); 

Wenn ich get_post_meta(285, 'ows_schedule_event-date', true); (285 ist einer der Posts) Ich bekomme 2013-08-15 .

Solutions Collecting From Web of "Erhalten Sie Beiträge zwischen benutzerdefinierten Daten"

Zuerst müssen Sie Ihre Daten in einer Form speichern, die mathematisch richtig sortiert. Unix-Zeitstempel werden das tun. Das einzige menschenähnliche Kalenderformat ist YYYY-MM-DD . Sie haben Ihre Daten rückwärts gespeichert. Angenommen, Sie speichern als YYYY-MM-DD , dann sollte dies funktionieren:

 $args = array( 'meta_query' => array( array( 'meta_key' => 'ows_schedule_field-date', 'meta_value' => array($date_one,$date_two), // both dates YYYY-MM-DD 'compare' => 'BETWEEN' ) ) ) $posts = new WP_Query($args);