网站运营
位置:首页>> 网站运营>> typecho首页和内容页的Title分别定义

typecho首页和内容页的Title分别定义

作者:荆棘鸟 来源:荆棘鸟's Blog 发布时间:2010-03-24 12:10:00 

标签:typecho,模板,标题,内容

从上到下修改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>

最终实现我要的效果,实现了首页标题格式与其它页面标题格式区别定义。

但是在内容页还是有些暇疵,如下所示,多了一个&raquo; 书名号。

<title> &raquo; 试测 - 荆棘鸟很差钱</title>

通过查找,“archiveTitle” 前后缀默认定义在\var\Widget\Archive.php文件,第1376行,

/**
     * 输出归档标题
     *
     * @access public
     * @param string $split
     * @return void
     */
    public function archiveTitle($split = ' &raquo; ', $before = ' &raquo; ', $end = '')
    {
        if ($this->_archiveTitle) {
            echo $before . implode($split, $this->_archiveTitle) . $end;
        }
    }

将$before = ' &raquo; ',改为$before = '',即可。改程序源代码不是一件好事,会给后来升级带来麻烦,这里记一下位置,升级之后记得改回去。

0
投稿

猜你喜欢

手机版 网站运营 asp之家 www.aspxhome.com