Фильтр поиска точное соответствие - PullRequest
0 голосов
/ 13 мая 2011

Плагин поиска, который я использую в Wordpress (Relavenssi), позволяет пользователю добавлять quotes к поисковым терминам для поиска фраз, например, «поисковая фраза».

Как бы я закодировал его так, чтобы, когда пользователь выбирает радио / флажок под названием «Точное совпадение», quotes автоматически добавляются в поисковый запрос, а не добавляются пользователем в поле поиска?

Любая помощь с благодарностью, S.

Код формы поиска ниже:

                  <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="???" /><label>Exact Match</label>  
                      </div>   
                  </div>
              </form>      

Редактировать: Основываясь на ответе @Tristar Web Design ниже, я добавил этот php-код под форму поиска, хотя он не работает должным образом. Это эхом хорошо, но не передает запрос обратно. Как передать / отправить обновленный поисковый запрос обратно в Wordpress?

                if(isset($_POST['s']) && $_POST['sentence'] == 'exact') {
                    $_POST['s'] = '"'.get_search_query().'"';
                    echo $_POST['s'];
                } else {
                    echo "2";
                }   

1 Ответ

1 голос
/ 13 мая 2011

Пару способов для этого, я думаю.

  1. Используйте PHP и добавляйте к нему значения в кавычках, если выбрано точное совпадение.
  2. Используйте Javascript, добавьте к нему кавычки и добавьте кавычки внутри поля, чтобы к отправляемому значению были применены кавычки. Я бы, наверное, попробовал этот метод javascript!

Edit:

Возможно, рассмотрим этот метод jQuery (этот метод предполагает, что jQuery был загружен, и я также добавил свою собственную переменную noConflict ()) -

<script type="text/javascript">
    var $j = jQuery.noConflict();

    function addquo() {
    if($j('#s').val()) {
    var text = '"'+ $j('#s').val() +'"';
            $j('#s').val(text);
    }
    }

    function removequo() {
    if($j('#s').val()) {

    var txt = $j('#s').val();
            $j('#s').val(txt.replace(/"/g, ''));

    }
    }

</script>

<form action="/" id="searchform" method="get" role="search">
<div><label for="s" class="screen-reader-text">Search for:</label>
<input type="text" id="s" name="s" value="">
<input type="submit" value="Search" id="searchsubmit">
<input type="radio" name="sentence" value="" onclick="javascript:addquo();" /><label>All Words</label><br />
<input type="radio" name="sentence" value="???" checked="checked" onclick="javascript:removequo();" /><label>Exact Match</label>
</div>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...