主机格调

20140504更新

刚刚过去的双12,Typecho发布了最新版0.9,时隔3年重新出发,做博客的朋友可以关注一下这个程序。我『主机格调』那边一直都是Typecho,打算升级到最新版,所以就研究了一下关键字和描述。

Typecho 0.8的时候,除了首页,其他页面是无法自定义关键字和描述的。首页的关键字和描述是在后台基本设置里,关键词和站点描述来控制。文章页自动生成这两个标签,关键字是自动调用文章标签,描述是自动调用文章第一段。这个问题一直困扰着我,而Typecho 0.9终于有了自定义字段,所以就琢磨着用这个来手动实现。

在论坛搜到管理员回答自定义字段调用的回复:

用以下代码就可以取到:$field = $this->fields->fieldName;

输出可以用:$this->fields->fieldName();

按照他说的,加上之前我写过WordPress关键字描述的方法,综合如下:

打开主题文件夹里的header.php,编辑,找到

<?php $this->header(); ?>

按照官方文档的说法,我们先把关键字和描述禁掉。所以把上面一段改成

<?php $this->header('keywords=&description='); ?>

下面是本文重点,加代码。切记,这段代码应该加在head标签里面,别加错了。

<?php
if($this->is('index')){
	$keywords = "这里填首页的关键字";
	$description = "这里填首页的描述";
}else{
	if(isset($this->fields->keywords)){
		$keywords = $this->fields->keywords;
	}
	if(isset($this->fields->description)){
		$description = $this->fields->description;
	}
}
?>
<meta name="keywords" content="<?php echo $keywords; ?>" />
<meta name="description" content="<?php echo $description; ?>" />

首页的关键字和描述在上面代码里改即可,文章页和独立页面,需要在编辑文章的时候,在下面“自定义字段”里添加,如下图:

图压得有点厉害,将就着看哈。keywords和description两个不分前后顺序。当然,如果你英文不好,也可以把这2个都换掉,不过也得稍微修改下上面的代码了。

注:因为一开始就把网站自带的关键字和描述给禁掉了,所以首页的需要在代码里填写,后台基本设置里的无效。

20140504更新:

今天正好有个需求,加上评论有网友反馈,所以就又改进了下。

需求是首页的关键字和描述,依旧用后台设置的,其他页面还是默认的。文章页和独立页面,如果设置自定义字段,就用自定义字段,如果没设置,依旧用默认的。因为SEO这东西不能随便改以前文章的关键字和描述,所以这种改动影响是最小的,几乎为零。

<?php
if(($this->is('single') || $this->is('post')) && (isset($this->fields->keywords) || isset($this->fields->description))){
	$this->header('keywords='.$this->fields->keywords.'&description='.$this->fields->description);
} else {
	$this->header();
} ?>

主要改进是官方函数header()里是可以拼接的,直接把自定义字段拼接一下,这样就不需要像我上面那样定义,然后插入link标签了。

>>原创文章,欢迎转载。转载请注明:转载自西门的后花园,谢谢!
>>原文链接地址:http://ons.me/459.html