2016-06-13 9 views
0

Ich versuche, einige Beiträge, die ein benutzerdefiniertes Feld namens "WooCommerceEventsDate" mit einem Datum im Format (J F Y) haben. Was ich versuche zu erreichen, ist nur Schleifen Posts, die nach dem aktuellen Datum sind. Ich habe fast jede Lösung ausprobiert, die ich online gesehen habe, und ich kann es einfach nicht zur Arbeit bringen. Im Moment nimmt die Schleife alle Beiträge auf, und nicht nur diejenigen, die ein Datum nach dem heutigen Tag haben.Schleife zukünftige Posts von benutzerdefinierten Feld Datum in WordPress

Hier sind meine Argumente so weit:

$today = date('j F Y'); 

$args = array(
    'posts_per_page' => 3, 
    'post_type'   => 'product', 
    'post_status'  => 'publish', 
    'meta_key'   => 'WooCommerceEventsDate', 
    'orderby'   => 'meta_value_num', 
    'order'    => 'DESC', 
    'meta_query' => array(
     'relation'  => 'AND', 
     array(
      'key'  => 'WooCommerceEventsDate', 
      'compare' => '>=', 
      'value'  => $today, 
     ) 
    ) 
); 

Kann man von euch Stelle, wo dies nicht in Ordnung ist, und warum die Argumente Arent Filterung?

Zur Klarstellung echo get_field('WooCommerceEventsDate'); echos: "2. August 2016".

Ich kann die Ausgabe von WooCommerceEventsDate in meinem Backend nicht ändern. Ich kann es nur in meinem eigenen Code tun.

Antwort

1

Sie können die type in meta_query übergeben.

type => (Zeichenfolge) - Benutzerdefinierter Feldtyp. Mögliche Werte sind "NUMERIC", "BINARY", "CHAR", "DATUM", "DATETIME", "DECIMAL", "SIGNED", "TIME", "UNSIGNED". Der Standardwert ist 'CHAR'.

$today = date('j F Y'); 
    $args = array(
     'posts_per_page' => 3, 
     'post_type'   => 'product', 
     'post_status'  => 'publish', 
     'meta_key'   => 'WooCommerceEventsDate', 
     'orderby'   => 'meta_value_num', 
     'order'    => 'DESC', 
     'meta_query' => array(
      'relation'  => 'AND', 
      array(
       'key'  => 'WooCommerceEventsDate', 
       'compare' => '>=', 
       'value'  => $today, 
       'type'  => 'DATE', 
      ) 
     ) 
    );  

Weitere Informationen Überprüfen Sie diese http://www.billerickson.net/code/wp_query-arguments/ Linie keine 141 'meta_query'

EDIT

für Änderungs-Datumsformat WooCommerceEventsDate Gehen Sie zu dieser Funktion plugins/woocommerce_events/js/events-admin.js finden

jQuery('#WooCommerceEventsDate').datepicker({ 
       dateFormat : 'd MM yy' 

}); 

Wechsel mit th

ist
jQuery('#WooCommerceEventsDate').datepicker({ 
       //dateFormat : 'd MM yy' 
       dateFormat : 'yy-mm-dd' 
}); 

Hinweis :: Ich bin nicht sicher, ob diese Änderung zu einem anderen beeinflusst oder nicht.

+0

Bevor Sie type => date eingeben, werden alle Posts ohne Datumsfilterung angezeigt. Wenn ich Datum hinzufüge, zeigt es keins an. Ich habe die Daten in den benutzerdefinierten Feldern überprüft. Sie sind definitiv nach dem heutigen Tag. –

+0

@ EmilØstervig überprüfen Sie diesen Link für weitere Informationen http://www.billerickson.net/code/wp_query-arguments/ –

+0

Danke, aber ich habe bereits die verschiedenen Arten von Argumenten gesehen. Ich habe so ziemlich alle ausprobiert. In dieser Frage frage ich, warum meine Argumente die Posts nicht filtern. Ich frage nicht nach einer vollständigen Liste der verfügbaren Argumente. –

Verwandte Themen