2017-07-27 8 views
1

私は映画のサイトのためのワードプレスの事前検索を行いますが、私は検索の提出に問題があります。 私はhtmlフォームを使用していないので、jqueryで入力要素の値を取得します。 私の検索パラメータはcategory_nameで、(ジャンル、レート)などのいくつかのカスタムフィールド... 今、私はjqueryを使って検索を提出したい、またはGETまたはPOSTメソッドを使ってインデックスページに、php $ _GET submit search。 私を助けてください!私はこのチュートリアルのように私のポストループを書き直したいとは思わない: https://www.advancedcustomfields.com/resources/query-posts-custom-fields/カスタムフィールドでのワードプレス検索

ただ私の投稿をフィルタリングしたい。 はアイムjqueryの内のすべてのユーザが入力したフィルタを得る:

$("#tw-search-button").click(function() { 
    var url = $("#tw-search-box").attr("data-search-url"); 
    var tw_sort = $("#tw-search-sort").attr("data-value"); 
    var tw_genre = $("#tw-search-genre").attr("data-value"); 
    var tw_quality = $("#tw-search-quality").attr("data-value"); 
    var tw_country = $("#tw-search-country").attr("data-value"); 
    var tw_age = $("#tw-search-age").attr("data-value"); 
    var tw_lang = $("#tw-search-lang").attr("data-value"); 
    var tw_date = dateRange.noUiSlider.get(); 
    var tw_rate = rateRange.noUiSlider.get(); 
    var tw_persian_sound = $("#tw-search-psound").attr("data-checked"); 
    var tw_persian_sub = $("#tw-search-psub").attr("data-checked"); 
    var tw_s_persian_sound = $("#tw-search-spsound").attr("data-checked"); 
    var tw_special_s = $("#tw-search-ss").attr("data-checked"); 
    tw_sort = (tw_sort === "all") ? "" : tw_sort; 
    tw_genre = (tw_genre === "all") ? "" : tw_genre; 
    tw_quality = (tw_quality === "all") ? "" : tw_quality; 
    tw_country = (tw_country === "all") ? "" : tw_country; 
    tw_age = (tw_age === "all") ? "" : tw_age; 
    tw_lang = (tw_lang === "all") ? "" : tw_lang; 

    //alert(url + "?s=search+term&category_name=" + tw_genre); 
    //$(location).attr('href',url + "?category_name=" + tw_genre + "&movie_quality=" + tw_quality + "&movie_country=" + tw_country + "&movie_age=" + tw_age + "&movie_language=" + tw_lang); 
    //$(location).attr('href',url + "?category_name=" + tw_genre); 
}); 

私は映画の言語を持っているtw_lang、例えば(カスタムフィールドから取得します)。 今、私はこの変数をurlに送ることができます。 のように:test.com/?category_name=aaa&movie_age=bbb または私はこの値をPHPページに送信して提出する必要がありますか? 私を助けてください。ありがとうございました...

+0

あなた自身で検索する必要があります。 WordPressは、この種の検索をパラメータの取得でサポートしていません。 – shazyriver

+0

どうすればいいですか?チュートリアルを送ってください... –

+0

wpクエリを参照してくださいhttps://codex.wordpress.org/Class_Reference/WP_Query – shazyriver

答えて

0

申し訳ありませんが、私はコメントがこれほど長くなるはずはないと思っていますので、私はこれをanwerとして投稿しています。これらの手順を正確に実行する必要があります。これにより検索作業が完了し、ページをリロードする必要はありません。

  1. 同じブロック内のすべての値を取得した後アヤックスとのすべて(すでに上記のコードでやっている)クリックで値
  2. 送信ポストコールを取得します(あなたがコードをcommmentedている。)
  3. 書き込みA ajax呼び出しを受け取る関数。
  4. 関数内のすべての変数の検証とサニタイズ以降
  5. 結果を取得するためのクエリを作成します。
  6. 結果を送信します。
  7. 結果をページに入力します。

DONE

+0

ステップ2:私のajax関数は、index.phpページに送信する必要がありますか?ステップ3ではPHP関数を書いています、はい?結果を送り返すともっと説明できますか? –

0

おかげで助けてshazyriverします。 検索パラメータを取得し、jquery関数に戻り、返されたデータをページをロードせずにインデックスページに挿入する関数を作成します。 しかし、私は大きな問題があります... 初めてのページ読み込み時にwp pagenaviページの下にページ番号が表示されます。たとえば、検索結果が10より大きい場合pagenaviは検索結果のページ番号を表示する必要がありますが、私がページ2をクリックすると、私のサイトのページ2が開かれました... 私はそれをどうしますか? ありがとう...

+0

load moreを使用しているときはpagenaviを使用しません。それを取り除く。 – shazyriver

+0

この結果の追加や追加はどうすればできますか? –

+0

あなたのテーマでsearch.phpに行って編集してください。 – shazyriver

関連する問題