2016-05-24 21 views
0

Ich habe eine benutzerdefinierte Post-Typ "Lektion" und es hat ein benutzerdefiniertes Feld namens "Datum der Lektion. Der Zeitraum und die Abfrage funktionieren gut, aber ich muss dem Benutzer erlauben, den Datumsbereich selbst einzugeben und dann die Liste aktualisieren zu lassen (zB für diesen Monat oder für diese Woche) und kann nicht herausfinden, wie man sie erlaubt um Daten einzugeben und dann die Abfrage zu aktualisieren. Als Referenz ist die Abfrage von taxonomy-subject.php:Filter wordpress Beiträge nach benutzerdefinierten Datumsbereich Eingabe

$args = array(

     'meta_key' => 'date_of_lesson', // The meta key to sort on 
     'orderby' => 'meta_value', 
     'order' => 'ASC', 
     'posts_per_page' => -1, 
     'meta_query' => array(
    array(
     'key' => 'date_of_lesson', 
     'value' => array($startdate, $enddate), 
     'compare' => 'BETWEEN', 
     'type' => 'DATE' 
    ) 
) 

Vielen Dank für jede Hilfe.

+0

Fehle ich etwas oder fragst du, wie man ein Formular mit zwei Datumselektoren erstellt? –

+0

Ich habe Probleme damit, ihre Eingaben zu übernehmen und die Abfrage zu aktualisieren, da ich zum Beispiel die "Subject" -Steuerungsseite mit allen Beiträgen aus dem Jahr 2015 sehe und der Nutzer diesen auf einen Monat und dann möglicherweise auf einen weiteren Monat eingrenzen möchte nach, ich weiß nicht, wie man die Abfrage aktualisiert, um es zu verengen, könnte ich engstirnig sein, aber unabhängig davon bin ich fest –

+0

Können Sie etwas mehr Code dann zur Verfügung stellen und auf "ihre Eingaben" - zeigen Sie uns, was Sie get/have und wir können Ihnen helfen, das richtige Format für Ihre Suchanfrage zu finden. Je mehr Sie uns geben, desto mehr erhalten Sie zurück :) Wenn Sie also ein Formular verwenden, um die Daten von einem Benutzer zu erhalten, zeigen Sie uns dieses Formular. –

Antwort

0

Grundsätzlich benötigen Sie ein Formular auf der Seite einrichten, die Ihre Daten mit Ihren von und zu Terminen zeigt, so etwas wie jQuery Datumsauswahl verwenden macht das Leben leichter und hält sie auf ein Feld.

Wenn übergeben, erhalten Sie die Werte und überprüfen Sie das Format von ihnen und stellen Sie sicher, dass es YYYY-MM-DD gemäß https://codex.wordpress.org/Class_Reference/WP_Meta_Query ist. Möglicherweise müssen Sie http://php.net/manual/en/function.strtotime.php und dann http://php.net/manual/en/function.date.php verwenden, wenn Sie Ihr Datum nicht im richtigen Format haben.

Wenn das Formular gebucht wird, achten Sie darauf, die verbuchten Datumswerte in Ihrem Formular (Wert = "" usw.) zu behalten, damit der Benutzer einfach anpassen kann, was er sieht, und das Formular erneut an senden Nehmen Sie Anpassungen vor.

0

Sie müssen nur das Datum konvertieren, dass der Benutzer strtotime Format zu geben und es dann zu ‚yyyy-mm-dd‘ (2016.05.24) Format und in dieser Abfrage übergeben ändern . Wenn dieses Format nicht übergeben wird, gibt die Abfrage ein leeres Ergebnis zurück.

Benutzer ausgewählte Eingabe sollte gemäß diesem Format als Startdatum und Enddatum geändert werden.

$start = '2011-11-31'; 
$end = '2011-10-01'; 
$args = array(
    'post_type' => 'YOUR-POST-TYPE', 
    'posts_per_page' => -1, 
    'orderby' => 'meta_value', 
    'order' => 'ASC', 
    'meta_key' => 'date_of_lesson', 
    'meta_query' => array(
     array(
      'key' => 'date_of_lesson', 
      'value' => array($start, $end), 
      'compare' => 'BETWEEN', 
      'type' => 'DATE' 
     ) 
    ) 
); 
// Make the query 
$events_query = new WP_query(); 
$events_query->query($args); 
+0

Vielen Dank für die Antwort, wie oben erwähnt, das Problem war nicht in der tatsächlichen Verwendung der Abfrage funktioniert das auf die gleiche Weise, wie Sie es angegeben haben, wie kann die Abfrage mit den Eingaben eines Benutzers aktualisiert werden (entweder über zwei Jquery-Datumsauswahl oder über zwei HTML-Eingabefelder im richtigen Format)? –

+0

Markiere meine Antwort Antwort als nützlich bro. Da laut deiner Frage die Antwort von mir richtig war weiß. –

+0

Ich habe gesagt, ich hatte Schwierigkeiten mit ihren Eingaben, nicht die Abfrage, oder ist es ein Fall jedes Mal, wenn sie Daten eingeben und die neue Eingabe in der Variablen gespeichert wird, wird die Seite automatisch mit den neuen Posts aus der Abfrage aktualisiert? –

Verwandte Themen