在wordpress主題我已經基於自定義分類設置一些搜索過濾器,將使用URL結構類似查詢職位:的WordPress/PHP:添加搜索串到現有的查詢字符串
http://myblog.com/?taxonomy1=term1+term2&taxonomy2=term3+term4
除這些過濾器我想集成文本搜索,但不知道如何將搜索查詢(例如?s=mysearchhere
)附加到現有的分類查詢中。因此,在總我想要的形式,在提交,導致它結合了兩個字符串的URL:
「http://myblog.com/?taxonomy1=term1+term2 & taxonomy2 = TERM3 + term4 & S = mysearchhere」
到目前爲止,我已經試過了具有以下功能生成的搜索表單:
function remove_querystring_var($url, $key) {
$url = preg_replace('/(.*)(?|&)' . $key . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&');
$url = substr($url, 0, -1);
return $url;
}
function apl_search_form($echo = true) {
do_action('get_search_form');
$search_form_template = locate_template('searchform.php');
if ('' != $search_form_template) {
require($search_form_template);
return;
}
$url = $_SERVER["REQUEST_URI"];
$action = remove_querystring_var($url,'s');
$form = '<form role="search" method="get" id="searchform" action="' . $action . '" >
<div><label class="screen-reader-text" for="s">' . __('Search for:') . '</label>
<input type="text" value="' . get_search_query() . '" name="s" id="s" />
<input type="submit" id="searchsubmit" value="'. esc_attr__('Search') .'" />
</div>
</form>';
if ($echo)
echo apply_filters('get_search_form', $form);
else
return apply_filters('get_search_form', $form);
}
這似乎並不奏效。這個問題比我看起來更復雜嗎?還是我在正確的軌道上?有誰知道這種直接的編碼方式嗎?
非常感謝!
你能更具體地說「似乎沒有工作嗎?」您的表單值將自動添加到網址上,您正在進行「獲取」和「發佈」。 – 2011-12-27 04:17:55