虽说我现在没用wordpress了,但是之前留下的东西我还是分享出来吧。
哔哩哔哩首页的搜索历史不错,我就把它“偷”了过来。之前还没换的时候已经放在wp上面调试过了。
说白了,这个功能就是依靠了cookie来记录历史搜索的。
将以下代码添加到functions.php最后一个空白位置。
/* * name:搜索框记录搜索历史 * author:balrogs_xt * url:https://www.balrogsxt.com * */ function set_search_cookie() { if(isset($_GET['s'])&&@$_GET['s']!=""){//判断是否存在搜索或搜索不能为空 if(isset($_COOKIE['search_cookie'])){//判断是否设置搜索历史cookie $cookie = explode(",",$_COOKIE['search_cookie']);//分割为数组 if(in_search($_GET['s'],$cookie)){//用in_search在数组中查找是否存在搜索的关键字 $cookie = $_COOKIE['search_cookie']; }else{ $cookie = $_COOKIE['search_cookie']."$_GET[s],"; } }else{ $cookie= "$_GET[s],"; }//设置cookie,cookie过期时间就随意了 @setcookie('search_cookie',$cookie, time()+604800,COOKIEPATH, COOKIE_DOMAIN, false); } } add_action( 'init', 'set_search_cookie');然后捏就在search.php文件开头添加
<?php set_search_cookie();?>//用于调用并设置搜索历史的cookie如果想要添加删除搜索历史呢?就用get请求就行了,因为wp的ajax我还是没弄懂~~~..在header.php文件最上面添加以下代码实现清除搜索历史
<?php if(isset($_GET['clear'])){ @setcookie('search_cookie',"", time()-604800,COOKIEPATH, COOKIE_DOMAIN, false); } ?>
最后在html部分则添加一下代码,这里CSS样式我就不提供了。大家自己看着调整吧,想必应该难不倒你们吧?
<?php//判断cookie是否设置来分割cookie里面的内容,然后遍历输出内容 if(isset($_COOKIE['search_cookie'])) { $search_cookie = explode(",", $_COOKIE['search_cookie']);?> <div> <em>曾 经 搜 索</em> <i></i> <ul> <?php for ($k = 0; $k < count($search_cookie) - 1; $k++) {?> <li><a target="_blank" title="过去一周搜索过【<?php echo $search_cookie[$k]?>】关键字" href="<?php get_xtinfo('url')?>?s=<?php echo $search_cookie[$k]?>"><?php echo $search_cookie[$k]?></a></li> <?php }?> <li><a title="清空搜索记录" href="<?php bloginfo('url')/?clear=true?>">清空搜索记录</a></li>//清楚搜索历史 </ul> </div> <?php }?>
如有疑问欢迎在下方评论~
3条评论登录后可见