Я пытаюсь добавить некоторые параметры флажка в поле поиска на боковой панели, подобное этому, где у пользователя есть возможность выбрать, следует ли искать All Words
, Some Word
или Entire phrase
.
Я нашел это после некоторых поисков — WordPress Search Phrases. Опция «предложение», кажется, работает хорошо, но другие не так хороши.
Код ниже — это то, над чем я работаю в данный момент, но был бы очень признателен за помощь, чтобы это работало правильно. Заранее большое спасибо, С. (Я не хочу использовать для этого плагины).
<form action="<?php bloginfo('home'); ?>/" method="post">
<div class="search-icon">
<label for="search" accesskey="4" class="hidden">Search the site</label>
<input type="text" name="s" id="search" value="Enter search term" onblur="this.value = this.value || this.defaultValue;" onfocus="this.value = '';" />
<input type="submit" name="submit" value="GO" class="s-btn" />
<p><a href="#" id="search-anchor">Search Options</a></p>
<div class="option-slide">
<input type="radio" name="sentence" value="" checked="checked" /><label>All Words</label><br />
<input type="radio" name="sentence" value="or" /><label>Some Word</label><br />
<input type="radio" name="sentence" value="and" /><label>Entire phrase</label>
</div>
</div></form>
РЕДАКТИРОВАТЬ: приведенный ниже ответ на самом деле не работает: (У кого-нибудь еще есть идеи, пожалуйста?
Прежде всего: атрибут имени для флажка «Все слова» не должен быть «s». Это заменяет текст поиска на «1», поэтому, когда он отмечен, вы ищете «1», а не текст поиска.
Я не думаю, что вы хотите использовать «точный», если хотите воспроизвести пример, который вы привели в своем вопросе.
Вот пример:
Я мог бы продолжать и говорить о том, что это не будет соответствовать, но вы поняли идею. Вероятно, поэтому вы получаете неожиданные результаты.
В любом случае, попробуйте изменить имя флажка «все слова» на что-то, что не будет соответствовать, например
'fake_search_flag_name'
, поскольку этот флаг в любом случае просто описывает обычные возможности поиска WordPress по умолчанию.РЕДАКТИРОВАТЬ
Хорошо, теперь, когда это радио, вот что вы можете сделать:
Первый — это поведение WordPress по умолчанию, поэтому вам нужно сделать ЗНАЧЕНИЕ пустым:
Если этот флажок установлен, поскольку значение пусто, WordPress проигнорирует его и будет использовать функциональность по умолчанию. Следующая часть немного сложнее. Измените значения двух других радиостанций примерно так:
Само по себе это заставит их обоих вести себя одинаково: так, как вы хотите, чтобы «Вся фраза» работала. Итак, нам нужно, чтобы «Some Word» заработал. Я вообще не тестировал эту следующую часть, но она должна работать.
Нам нужно отфильтровать поисковый запрос, чтобы условия поиска соответствовали сообщениям, в которых есть некоторые слова, но не все из них:
Это должно сработать.
Спасибо за ответ — небольшая проблема в том, что мне пришлось изменить флажки на переключатели; поэтому все входные имена теперь являются «предложениями».
Потрясающий! большое спасибо — есть ли способ проверить, как это работает?
Вы можете проверить это, попробовав и посмотрев, работает ли оно.
Сделали это; если честно разницы не вижу. Он всегда возвращает одни и те же результаты, независимо от того, какой вариант вы выберете.
Это не работает!!!