Benutzerdefinierte Abfrage basierend auf dem benutzerdefinierten Feld eines einzelnen Posts

Ich habe Beiträge mit einem benutzerdefinierten Felddatum im Format JJJJ-MM-TT. Was ich versuche, ist, alle Beiträge für ein bestimmtes Jahr auf der Seite einer einzelnen Seite basierend auf dem Jahr im benutzerdefinierten Feld dieses Beitrags aufzulisten und in Monate zu trennen.

Wenn beispielsweise der Beitrag ein benutzerdefiniertes Felddatum von 1990 hat, möchte ich alle Beiträge von 1990 auf der Seite der Seite auflisten und nach Monaten sortieren.

Ich muss dieses benutzerdefinierte Felddatum verwenden und kann die interne WordPress-Datumsfunktion nicht verwenden.

Unten habe ich nur das Jahr aus dem benutzerdefinierten Feld Datum für die Abfrage extrahiert und es gibt alle Links zu den Posts aus dem Jahr das einzelne Post benutzerdefinierte Feld ist datiert. Diese Abfrage wird auf der Seite der einzelnen Post-Seitenvorlage außerhalb der einzelnen Post-Schleife angezeigt.

Ich versuche herauszufinden, wie ich diese Beiträge jetzt in Monate sortieren kann. Also im Januar folgten alle Postlinks für diesen Monat, Februar und so weiter …

ID, "historic-date", true),0,4); $querystr = " SELECT $wpdb->posts.* FROM $wpdb->posts, $wpdb->postmeta WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id AND $wpdb->postmeta.meta_key = 'historic-date' AND $wpdb->postmeta.meta_value = $histyear AND $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ORDER BY $wpdb->postmeta.meta_key = 'historic-date' DESC "; $pageposts = $wpdb->get_results($querystr, OBJECT); ?>     <div class="post" id="post-"> 

<a href="https://wordpress.stackexchange.com/questions/75548/custom-query-based-on-custom-field-of-a-single-post/" rel="bookmark" title="Permanent Link to ">

Solutions Collecting From Web of "Benutzerdefinierte Abfrage basierend auf dem benutzerdefinierten Feld eines einzelnen Posts"

Mysql’s Monat function kann Ihnen dabei helfen. Angenommen, Ihr Metawert ist im SQL-Datumsformat.

 ORDER BY MONTH($wpdb->postmeta.meta_value) ASC 

Könnte diese Hilfe:

 $args = Array( meta_query => Array( Array( 'key' => 'historic-date', 'value'=>Array('19900101','19901231'), 'compare'=>'BETWEEN', 'type'=>'DATE' ) ), 'posts_per_page'=>5, //other arg goes here ); $query = new WP_Query($arg); //loop query here. 

Der ‘type’ DATE arbeitet nur dann mit dem ‘compare’-Wert BETWEEN, wenn das Datum im Format YYYYMMDD gespeichert und mit diesem Format getestet wird.

Referenz: http://codex.wordpress.org/Function_Reference/WP_Query#Custom_Field_Parameters