2016-04-08 5 views
0

Мы написали полностью пользовательский поиск WordPress, поскольку у нас были очень обширные потребности в этом.Пользовательский поисковый запрос Wordpress

Способ, которым он работает, заключается в том, что, когда кто-то ищет, мы выполняем наш собственный запрос (пользовательский оператор mysql, включая несколько UNION). Тем не менее, все работает отлично, однако для конкретных запросов мы не можем достичь /page/2?s=***. Эта страница даже не попадает на страницу поиска, но идет до 404.

Мое предположение заключается в том, что WordPress сначала выполняет поиск самостоятельно, а затем также вычисляет, сколько результатов должно быть показано, а потому, «Нет или нет результатов, вторая страница недоступна.

Мне кажется, что решение будет заключаться в том, чтобы заменить поиск по умолчанию WordPress на наш код, но я не могу найти что-либо в Интернете о фактической замене поиска по вашему собственному запросу. Это возможно?

В качестве альтернативы, есть ли способы, по которым мы можем позволить /page/2/?s= перейти на страницу поиска, где наш код будет обрабатывать остальное? Вместо того, чтобы получить 404.

+0

«конкретные запросы» означает ваш пример «***» или вы просто не можете найти другие страницы с разными запросами? И как вы переписали поиск? И как выглядит ваша разбивка на страницы в поисках? –

+0

Частные запросы = просто поиск определенной строки, например. «ksno», а не «***». Мы создаем простой старый SELECT ..., а затем используя '$ wpdb-> get_results ($ q, OBJECT);' – Richard

+0

страница 1 и страница 2 результаты поиска/страницы/ссылки называются Pagination. Другие вещи, которые следует учитывать, - это тип запроса. т.е. результаты поиска GET и POST. Возможно, эта страница WordPress Codex будет полезна: https://codex.wordpress.org/Making_Custom_Queries_using_Offset_and_Pagination –

ответ

1

В зависимости от того, как вы создаете ссылки на разбитые на страницах больше результатов поиска, я бы рекомендовал использовать параметр $ _GET, чтобы определить текущую страницу, по умолчанию странице 1.

Если вы используете ваш собственный шаблон страницы для отображения результатов поиска, это, вероятно, самый простой способ обойти постраничной по умолчанию функций WordPress'S:

/?s=search_here&s_page=1 

Например. Я сделал это с настраиваемыми плагинами, которые имеют поиск и разбитые на страницы результаты, обрабатываемые в одном шаблоне страницы.

+0

Звучит как план. Попробуем это сейчас, спасибо – Richard

+0

Работал, спасибо! – Richard

+0

Рад, что это было, привет! –

Смежные вопросы