• Приветствую. Занимаюсь прикруткой гугл поиска к сайту и столкнулся со следующей проблемой:

    Стандартный поиск WordPress по умолчанию отдает результаты поиска по адресу site.ru/?s=<тут_слова_поиска>

    Для вывода результатов гугла была создана отдельная страница search и его результат выглядит как site.ru/search/?q=<тут_слова_поиска>

    Подскажите пожалуйста, что надо прописать в functions.php? чтобы сменить параметр запроса поиска с ?s на ?q, т.к. для передачи данный в Google Analytics необходимо указать, какой параметр использовать (можно выбрать только один), а на проекте параллельно функционирует 2 поиска, каждый из которых необходим для решения тех или иных задач.

    В настройках гугла пробовал сменить ?q на ?s, но гугл отказался работать, возвращая 404 ошибку. С другими буквами работает нормально. Именно поэтому допиливать надо именно на стороне WP.

    Так же интересует возможность вывода результатов поиска по адресу, что и у гугла.

Просмотр 4 ответов — с 16 по 19 (всего 19)
  • Модератор Юрій

    (@yube)

    Для вывода результатов гугла была создана отдельная страница search и его результат выглядит как site.ru/search/?q=<тутсловапоиска>

    сделать так, чтобы те же самые встроенные результаты поиска изменили свой адрес на
    site.ru/search/?q={QUERY}

    Вам не кажется, что имеет место противоречие? Как вордпресс с гуглем должны угадывать, чья очередь показывать результаты поиска на странице /search/q=____?

    Модератор Юрій

    (@yube)

    Короче, вот Вам сниппет-полуфабрикат, можете играться. Все равно я до конца не понимаю, что Вы хотите получить в результате 🙂

    add_action('init', function() {
    	if ( is_admin() ) return;
    	if ( isset($_GET['s']) ) {
    		wp_redirect('/?q=' . $_GET['s']);
    		exit;
    	}
    	elseif ( isset($_GET['q']) ) {
    		$_GET['s'] =  $_GET['q'];
    	}
    });

    Yuri, спасибо большое за код, вечером попробую, о результатах отпишусь

    Что касаемо конфликтов, то да, есть такие опасения, но с другой стороны, запрос на вывод результатов поиска делает сам вордпресс, и в теории при отправки запроса с внутреннего поиска он может не вызывать непосредственно страницу /search/, а создавать виртуальный урл с аналогичным именем.

    Другими словами, если мы вбиваем в строку браузера site.ru/search/?q={QUERY}, то приоритете отдается выдаче гугла, т.к. такая страница есть в админке, если же запрос совершен непосредственно с сайта при использовании внутреннего поиска wordpress — то результат будет выведен по «виртуальному» урлу.

    Вроде как-то так мне объяснял программист, когда пару лет назад мы прорабатывали данный функционал. К сожалению программиста не стало ((( поэтому и пытаюсь реализовать самостоятельно

    Модератор Юрій

    (@yube)

    если мы вбиваем в строку браузера site.ru/search/?q={QUERY}, то приоритете отдается выдаче гугла, т.к. такая страница есть в админке, если же запрос совершен непосредственно с сайта при использовании внутреннего поиска wordpress — то результат будет выведен по «виртуальному» урлу.

    Серверу (вордпрессу) абсолютно все равно каким образом получен запрашиваемый url //site.ru/search/?q={QUERY}: натыкиванием этих буковок ручками в адресуню строку , копированием строки через клипборд, кликом по ссылке <a href="/search/?q={QUERY}">Ищи!</a> или заполнением на сайте формы с последующим сабмитом.
    <form action="/search/" method="get">
    <input name="q">
    <input type="submit" value="Ищи!">
    </form>

Просмотр 4 ответов — с 16 по 19 (всего 19)
  • Тема «Изменить путь и параметр запроса поиска WP» закрыта для новых ответов.