2016-04-08 16 views
0

私たちはWordPressの完全なカスタム検索を書いています。Wordpressのカスタム検索クエリ

私たちは、自分がクエリ(カスタムのmysqlステートメント、いくつかのUNIONを含む)を実行するということです。これはすべて正常に動作しますが、特定のクエリでは/page/2?s=***には届きません。このページは検索ページにも終わりませんが、404に行きます。

私は、WordPressが最初に検索を行っていて、いくつの検索結果が表示されるかを計算しています何らかの十分な結果が得られていない場合、2ページ目は利用できません。

解決策は、WordPressの既定の検索自体を私たちのコードに置き換えることですが、実際には自分のクエリで検索を置き換えることについてオンラインでは何も見つかりません。これは可能ですか?

また、/page/2/?s=を検索ページに移動させる方法はありますか?コードでは残りの部分が処理されます。代わりに、あなたはより多くの検索結果にページ分割のリンクを生成している方法に応じて404

+0

「特定のクエリ」はあなたの例「***」を意味するか、単に異なるクエリを使用してさらにページに到達することはできませんか?そして、あなたはどのように検索を書き直しましたか?検索内のページネーションはどのように見えますか? –

+0

特定のクエリ=単なる特定の文字列の検索。 "ksno"ではなく、 "***"。普通の 'SELECT ...'を作成してから$ wpdb-> get_results($ q、OBJECT); ' – Richard

+0

1ページ目と2ページ目の検索結果/ページ/リンクをページネーションと呼びます。考慮すべき他のものはRequestのタイプです。すなわちGETとPOSTの検索結果。たぶんこのWordPress Codexページが参考になるでしょう:https://codex.wordpress.org/Making_Custom_Queries_using_Offset_and_Pagination –

答えて

1

を得るための、私はあなたが使用している場合、ページ1

をデフォルト、現在のページを決定するための$ _GETパラメータを使用することをお勧めします例えば

/?s=search_here&s_page=1 

:検索結果をレンダリングするため、独自のページテンプレートには、これはおそらく、ワードプレスのデフォルトのページネーション機能を回避する最も簡単な方法です。私は、単一のページテンプレートで処理された検索結果とページ付けされたカスタムプラグインでこれを行っています。

+0

計画のように聞こえます。それを今、試してみる – Richard

+0

働いて、ありがとう! – Richard

+0

うれしかった、歓声! –

関連する問題