我在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";
}
答案 0 :(得分:1)
我猜这有两种方法。
修改强>
也许考虑一下这个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>