七空幻音LOGO

七空幻音

wordpress新增搜索历史框2015-12-22 09:34:37

虽说我现在没用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 }?>



如有疑问欢迎在下方评论~


后端语言

    详细图片
    载入中...