2016-05-24 8 views
0

私はカスタム投稿タイプ 'レッスン'を持っていて、それに「レッスンの日付」というカスタムフィールドが添付されています。日付範囲とクエリは正常に動作しますが、ユーザーが日付範囲を入力してからリストの更新を行うことができます(今月や今週など)。許可する方法がわからない日付を入力してからこれを使用してクエリを更新します。参考までに、taxonomy-subject.phpからのクエリ:カスタム日付範囲入力によるWordPress投稿のフィルタリング

$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' 
    ) 
) 

何か助けてくれてありがとう。あなただけのユーザーがのstrtotime形式で与えていることを日付に変換してから「YYYY-MM-DD」にそれを変更する必要が

+0

何か不足していますか、2つの日付セレクタでフォームを作成する方法を尋ねていますか? –

+0

2015年のすべての投稿を「件名」の税務ページに表示しているとし、ユーザーが入力を受け取り、クエリを更新するのに苦労しています。ユーザーはこれを1か月に絞り込み、後で、私はそれを絞り込むためにクエリを更新する方法がわからない、狭い気がするかもしれませんが、それに関係なく私はつまらないです –

+0

あなたはいくつかのコードを提供し、 "彼らの入力"を詳述できますか? get/haveと入力すると、クエリが正しく機能するように適切な形式で取得できます。あなたが私たちに与えるものが増えるほど、より多くのものが返ってくるでしょう:)したがって、フォームを使用してユーザーから日付を取得する場合は、そのフォームを表示してください。 –

答えて

0

基本的には、ピッカーが人生をより容易になり、一つのフィールドにそれらを保持jQueryの日付のようなものを使用して、あなたからとの日付を使用してデータを表示するページ上のフォームを設定する必要があります。

提出された時点で値を取得し、その形式を確認し、https://codex.wordpress.org/Class_Reference/WP_Meta_QueryのようにYYYY-MM-DDであることを確認してください。適切な形式の日付がない場合は、http://php.net/manual/en/function.strtotime.php、次にhttp://php.net/manual/en/function.date.phpを使用する必要があります。

フォームが転記されるときは、転記された日付の値をフォーム(value = "" etc ...)に保存してください。ユーザーは見たいものを簡単に調整してからフォームを再送信してください。調整してください。

0

(2016年5月24日)フォーマットと、このクエリを渡します。この形式が渡されない場合、クエリは空の結果を返します。

ユーザー選択された入力は、この形式の開始日と終了日に変更する必要があります。

$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

上記のように、お返事ありがとうございます、問題は実際のクエリの使用ではなかったあなたが与えたのと同じようにうまく動作します。ユーザーの入力(2つのJquery datepickerまたは2つのHTML入力ボックスから正しい形式で)でクエリを更新する方法です。 –

+0

私の応答をマークしてください。あなたの質問ごとに、私の反応は正しいことが分かっていたからです。 –

+0

私は、入力を使用することに苦労していたと言いました。あるいは、日付を入力するたびに新しい入力が変数に保存されるケースです。ページは自動的にクエリの新しい投稿で更新されますか? –

関連する問題