对于一些标准的组件,wordpress提供了标准的方案,比如实现一个搜索框,只需要输入这样一行语句:
<?php get_search_form(); ?>
上述语句的效果是在页面生成如下的标签:
<form role="search" method="get" id="searchform" class="searchform" action="https://blog.abddb.com/">
<div>
<label class="screen-reader-text" for="s">搜索:</label>
<input type="text" value="" name="s" id="s">
<input type="submit" id="searchsubmit" value="搜索">
</div>
</form>
其他参数都是标准的,但是action参数决定了搜索的数据来源,这里的参数会根据安装站点的不同而变更。如果需要在主题中自定义一个搜索框,那么需要获取到本地站点的地址,并将其赋予action。获取当前站点的地址需要使用另一个函数:
home_url( '/' )
所以自定义一个搜索框,并且删除掉一个自己不需要的label,可以如下操作:
上述语句的效果是在页面生成如下的标签:
<form role="search" method="get" id="searchform" class="searchform" action="<?php echo home_url('/'); ?>">
<div>
<input type="text" value="" name="s" id="s">
<input type="submit" id="searchsubmit" value="搜索">
</div>
</form>
因为想在主题中尽可能少的调用函数,所以考虑将该值写入了主题设置参数里,将参数设计为了一个数组,通过键值实现调用:
<?php global $Options; ?>
<form role="search" method="get" id="searchform" class="searchform" action="<?php echo $Options[siteurl]; ?>">
<div>
<input type="text" value="" name="s" id="s">
<input type="submit" id="searchsubmit" value="搜索">
</div>
</form>