typecho首页和内容页的Title分别定义
作者:荆棘鸟 来源:荆棘鸟's Blog 时间:2010-03-24 12:10:00
从上到下修改typecho模版,我用的这个模版发现Title定义不是很好。在“Discuz论坛首页和内容页的Title分别定义”一文中,我写过理想的Title定义,这里就不在重复。
我对PHP一窍不通,盲人摸象尝试改一下。
我用的模版Title原始定义是这样的:
<title><?php $this->options->title(); ?><?php $this->archiveTitle(); ?> - <?php $this->options->description(); ?></title>
其三个变量输出分别是:
网站名,文章名(标签名、分类名),副标题
结合typecho官方网站的“我在哪”一文的说明,改成如下:
<title><?php
if ($this->is('index')) {
$this->options->title();
echo ' - ';
$this->options->description(); }
else {
$this->archiveTitle();
echo ' - ';
$this->options->title(); }
?></title>
最终实现我要的效果,实现了首页标题格式与其它页面标题格式区别定义。
但是在内容页还是有些暇疵,如下所示,多了一个» 书名号。
<title> » 试测 - 荆棘鸟很差钱</title>
通过查找,“archiveTitle” 前后缀默认定义在\var\Widget\Archive.php文件,第1376行,
/**
* 输出归档标题
*
* @access public
* @param string $split
* @return void
*/
public function archiveTitle($split = ' » ', $before = ' » ', $end = '')
{
if ($this->_archiveTitle) {
echo $before . implode($split, $this->_archiveTitle) . $end;
}
}
将$before = ' » ',改为$before = '',即可。改程序源代码不是一件好事,会给后来升级带来麻烦,这里记一下位置,升级之后记得改回去。