为 Typecho 增加独立的搜索页面
前言
- 其实非常简单,做下记录,方便以后复制粘贴
- 本站的搜索页面 https://paoti.club/search.html
过程
一个完整的站内搜索,至少包含如下两个部分
- 搜索结果页,类似 https://www.baidu.com/s?wd=typecho
搜索入口,可以是在每个页面都出现的搜索框,也可以是独立的页面
- 跑题俱乐部采用的是独立搜索入口页面,类似 https://www.baidu.com
制作搜索结果页
在主题中新增 search.php 文件
- 如果不想新增文件,也可以在 archive.php 使用 if($this->is('search')) 实现
- 如果需要调用当前正在搜索的关键词,可以使用
$this->_keywords
来获取
本站的代码示例如下
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
<?php $this->need('header.php'); ?>
<div id="main-in" role="main" class="clearfix">
<h1 class="post-in-title">站内搜索</h1>
<div class="category-search">
<form method="post">
<input type="text" name="s" class="text" placeholder="输入内容回车搜索" value= "<?php echo $this->_keywords ?>" />
</form>
</div>
<h2>包含关键字 { <span class="keyword"><?php echo $this->_keywords ?></span> } 的文章</h2>
<div class="category-block">
<?php while ($this->next()): ?>
<article class="category-post clearfix">
<h3 class="category-post-title"><a href="<?php $this->permalink() ?>"><?php $this->title() ?></a></h3>
<div class="category-post-meta"><a href="<?php $this->permalink() ?>"><?php $this->date() ?></a></div>
</article>
<?php endwhile; ?>
</div>
<?php $this->pageNav('« 前一页', '后一页 »'); ?>
</div><!-- end #main-->
最终效果如下
制作搜索入口页
分为如下两个步骤
- 制作页面模板,具体可以搜索:Typecho 如何自定义页面模板
- 创建一个独立页面并引用模板
本站的模板代码如下
<?php
/**
* search
*
* @package custom
*/
$this->need('header.php'); ?>
<div id="main-in" role="main" class="clearfix">
<h1 class="post-in-title">搜索已发布的内容</h1>
<div class="category-search">
<form method="post">
<input type="text" name="s" class="text" placeholder="输入内容回车搜索" autofocus />
</form>
</div>
</div><!-- end #main-->
效果如下图所示
去亲自体验一下吧 https://paoti.club/search.html