已經得到了我真的不知道你正在嘗試做的,但總的想法是很簡單。只要有條件地創建佔位符文本。
if (is_home()) {
$placeholder = "Search Posts...";
} elseif(is_tag()) {
$placeholder = "Search Tags...";
} else {
$placeholder = "Search...";
}
<!-- Searchform -->
<form method="get" class="search" action="<?php echo home_url(); ?>" >
<input id="s" placeholder="<?php echo $placeholder; ?>" type="text" name="s" onfocus="if (this.value==this.defaultValue) this.value = '';"
這就像是你在找什麼?
根據要求
搜索表單功能是不是真的意味着工作像你需要一些進一步的解釋。你可以用全局變量作弊。
將
$GLOBALS['placeholder'] = "Default placeholder value";
在functions.php
然後編輯表單閱讀...
<!-- Searchform -->
<form method="get" class="search" action="<?php echo home_url(); ?>" >
<input id="s" placeholder="<?php echo $GLOBALS['placeholder']; ?>" type="text" name="s" onfocus="if (this.value==this.defaultValue) this.value = '';"
並調用的功能等:
$GLOBALS['placeholder'] = "Placeholder value...";
get_search_form();
根據該文檔,get_search_form(false)
應返回一個字符串,這意味着這樣的事情應該工作:
編輯搜索表單閱讀:
<!-- Searchform -->
<form method="get" class="search" action="<?php echo home_url(); ?>" >
<input id="s" placeholder="%s" type="text" name="s" onfocus="if (this.value==this.defaultValue) this.value = '';"
然後用...
$search_form = get_search_form(false);
printf($search_form,'Placeholder...');
這避免了全局,這通常是一件好事。我不能那個開箱即用。如果你看看源代碼,那功能似乎取決於是否存在searchform.php
。如果該文件存在,它只是簡單的包含在內,這使得「返回字符串」部分非常危險。使用可用過濾器劫持已證明令人驚訝的困難。
爲了避免global
雜耍,我想你會需要更換`get_search_form」,例如,有:
function my_get_searchform($placeholder = 'Search') {
$search_form_template = locate_template('searchform.php');
if ('' != $search_form_template) {
ob_start();
require($search_form_template);
$form = ob_get_clean();
printf($form,$placeholder);
}
}
不完全,我有一個頁面,在不同的位置有3個搜索框。其中一個很小,所以我不希望它有一個佔位符。它應該是更多的地方,如果聲明,但我不確定如何做到這一點。例如:如果搜索在#主菜單中,則不顯示佔位符 – user1202292 2013-03-02 16:15:56