我正在尝试自定义默认的WordPress搜索字段。所以我想我可以添加一个过滤器来删除该函数,然后添加一个新函数,并按照我想要的方式添加字段。所以我试过这个
function savior_search(){
<form role="search" method="get" id="searchform" action="<?php echo home_url( \'/\'); ?>">
<input type="text" value="" name="s" id="s" />
</form>
<?php }
add_filter( \'get_search_form\', \'savior_search\');
它似乎有效,但由于某种原因,我不明白,它复制了搜索字段。它会将表单放在页面上两次。我还在侧边栏中注释了get\\u search\\u表单,但当我刷新页面时,它仍然在那里。我使用的过滤器不正确?我的搜索功能位于功能中。php。
最合适的回答,由SO网友:amit 整理而成
你的语法错误,你把html
和php function
在一开始。
请看这里的过滤器-wp-includes/general-template.php#L151
我认为我们应该返回表单,而不是打印它,请看我的示例,它应该可以工作,如果您想修改某些内容,请在函数中执行。
Example -
function savior_search(){
//Modify This
$form = \'<form role="search" method="get" id="searchform" action="\' . esc_url( home_url( \'/\' ) ) . \'" >
<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>\';
return $form;
}
add_filter( \'get_search_form\', \'savior_search\');