5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 12505|回复: 0
打印 上一主题 下一主题

[钩子/函数] get_search_form 获取搜索表单 默认搜索框修改

[复制链接]

670

主题

785

帖子

8228

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8228
跳转到指定楼层
楼主
发表于 2021-6-9 14:31:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
引入 searchform.php 文件来显示搜索表单。

用法
  1. <?php get_search_form( $echo ); ?>
复制代码

参数
$echo : (布尔值) (可选) 如果是 true 则输出表单; false 则返回表单的字符串。默认: true

返回值
(字符串string),如果参数 $echo 设置为 false,就返回表单的HTML代码。

例子
如果你的主题没有 searchform.php, WordPress 将使用其内置的搜索表单:

  1. <form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>">
  2.     <div><label class="screen-reader-text" for="s">Search for:</label>
  3.         <input type="text" value="" name="s" id="s" />
  4.         <input type="submit" id="searchsubmit" value="Search" />
  5.     </div>
  6. </form>
复制代码


如果你的主题没有 searchform.php ,将自动使用上面的代码替代。请记住,搜索表单需要一个 Get 方式(method="get" )到你博客的首页,而且文本输入框应该被命名为 s (name="s"),此外,还必须向上面的例子一样包含标题 。

一个自定义的 searchform.php 例子:

  1. <form action="/" method="get">
  2.     <fieldset>
  3.         <label for="search">Search in <?php echo home_url( '/' ); ?></label>
  4.         <input type="text" name="s" id="search" value="<?php the_search_query(); ?>" />
  5.         <input type="image" alt="Search" src="<?php bloginfo( 'template_url' ); ?>/images/search.png" />
  6.     </fieldset>
  7. </form>
复制代码

最后一个选项是写一个自定义的函数(在你的 functions.php 文件中)并挂载这个函数到 get_search_form 钩子。

  1. function my_search_form( $form ) {

  2.     $form = '<form role="search" method="get" id="searchform" action="' . home_url( '/' ) . '" >
  3.     <div><label class="screen-reader-text" for="s">' . __('Search for:') . '</label>
  4.     <input type="text" value="' . get_search_query() . '" name="s" id="s" />
  5.     <input type="submit" id="searchsubmit" value="'. esc_attr__('Search') .'" />
  6.     </div>
  7.     </form>';

  8.     return $form;
  9. }

  10. add_filter( 'get_search_form', 'my_search_form' );
复制代码

注释
searchform.php 存在时,$echo 参数将被忽略。一个解决办法是使用 get_search_form 过滤钩子来确保通过 get_search_form() 获取搜索表单。

所在文件
get_search_form() 包含在 wp-includes/general-template.php.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-4-25 03:01 , Processed in 0.234375 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表