Typecho 0.8的时候,除了首页,其他页面是无法自定义关键字和描述的。首页的关键字和描述是在后台基本设置里,关键词和站点描述来控制。文章页自动生成这两个标签,关键字是自动调用文章标签,描述是自动调用文章第一段。这个问题一直困扰着我,而Typecho 0.9终于有了自定义字段,所以就琢磨着用这个来手动实现。
在论坛搜到管理员回答自定义字段调用的回复:
用以下代码就可以取到:$field = $this->fields->fieldName;
输出可以用:$this->fields->fieldName();
按照他说的,加上之前我写过WordPress关键字描述的方法,综合如下:
打开主题文件夹里的header.php,编辑,找到
代码: 全选
<?php $this->header(); ?>
代码: 全选
<?php $this->header('keywords=&description='); ?>
代码: 全选
<?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; ?>" />
![图片](http://ons.me/wp-content/uploads/2013/12/21_01.jpg)
图压得有点厉害,将就着看哈。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();
} ?>
>>原创文章,欢迎转载。转载请注明:转载自西门的后花园,谢谢!
>>原文链接地址:http://ons.me/459.html