2011-05-13 125 views
0

搜索插件,我使用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網頁設計的答案,我現在已經增加低於這個PHP代碼我的搜索表單,儘管它不能正常工作。它回聲良好,但不會傳回查詢。如何將更新後的搜索查詢傳遞給Wordpress?

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

回答

1

這個我猜想有幾種方法。

  1. 如果選擇完全匹配,請使用PHP並使引號前綴並將引號附加到搜索值。
  2. 使用JavaScript,使之前置和後場的onclick引號內,使得發送的值已經應用了引號。我可能會嘗試這種JavaScript方法!

編輯:

也許認爲這是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> 
+0

感謝。已經嘗試了兩種方式,但只能讓PHP稍微工作 - 請參閱編輯的問題。 – ss888 2011-05-13 16:49:42

+0

檢查上面的編輯,讓我知道,如果它可以幫助你。 – 2011-05-16 09:07:25

+0

非常感謝!奇蹟般有效! – ss888 2011-05-16 09:49:43