get_search_form 函数在 WordPress 中是用来提取预设的搜索表单或者默认的搜索表单的。
语法结构
<?php get_search_form($echo = true) ?>
参数
$echo 布尔型,参数是可选的,如果是
true
则显示表单,如果是false则会返回一个字符串,默认是true。
实例
如果主题目录里没有searchform.php这个文件,那么WordPress将默认使用内置的搜索表单,其格式为
<form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>"> <div> <label class="screen-reader-text" for="s">Search for:</label> <input type="text" value="" name="s" id="s" /> <input type="submit" id="searchsubmit" value="Search" /> </div> </form>
如果主题文件里有searchform.php这个文件,那么WordPress就会使用指定的搜索表单模版。注意,搜索表单应该使用get方法指向主页,文本域的name应该是s,这是一个自定义searchform.php的例子:
<form action="/" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>"> <label for="search">Search</label> <input type="text" name="s" id="search" value="<?php the_search_query(); ?>" /> <input type="image" alt="Search" src="<?php bloginfo( 'template_url' ); ?>/images/search.png" /> </form>
如果不想用这种方法自定义搜索表单,还可以使用get_search_form钩子进行搜索表单的添加
function change_search_form( $form ) { $form = '<form role="search" method="get" class="search-form" action="' . esc_url( home_url( '/' ) ) . '"> <label> <span class="screen-reader-text">' . _x( 'Search for:', 'label' ) . '</span> <input type="search" class="search-field" placeholder="' . esc_attr_x( 'Search for:', 'placeholder' ) . '" value="' . get_search_query() . '" name="s" title="' . esc_attr_x( 'Search for:', 'label' ) . '" /> </label> <input type="submit" class="search-submit" value="' . esc_attr_x( 'Search', 'submit button' ) .'" /></form>'; return $form; } add_filter( 'get_search_form', 'change_search_form' );
这三种表单的级别从大到小依次是钩子方法>searchform.php>默认搜索表单