从用户体验和搜索引擎SEO两个角度看,用户想看到的标题和利于搜索引擎抓取的标题有时会不一样,用户想看简单概要、直击要点的内容,而从SEO角度,标题和描述需要包括主要关键词等利于搜索引擎展现的内容。So,我们就需要给搜索引擎设置单独的标题、描述、关键词。

一、前言

以前用wordpress,有非常多的seo插件可供选择,自从入了typecho坑,慢慢地就被逼成了程序员,遇到问题都要自己解决。typecho的seo插件寥寥无几,无奈只能自己动手解决问题,今天给大家分享如何给ypecho文章添加SEO标题、描述、关键词自定义字段的教程。

二、详细步骤

(一)自定义字段值并绑定输入框

Typecho有一个themeFields函数,可以给自定义字段添加设置面板。如下图:
Typecho文章添加SEO标题描述关键词自定义字段.png
打开主题目录下的functions.php文件,搜索themeFields,在这个函数最后的}前添加下面代码:

$title_seo = new Typecho_Widget_Helper_Form_Element_Text('title_seo', NULL, NULL, _t('文章title标题'), _t('呈现给搜索引擎的标题'));
$title_seo->input->setAttribute('class', 'w-100');
$keywords_seo = new Typecho_Widget_Helper_Form_Element_Text('keywords_seo', NULL, NULL, _t('文章keywords关键词'), _t('文章SEO关键词,以半角,隔开'));
$keywords_seo->input->setAttribute('class', 'w-100');
$description_seo = new Typecho_Widget_Helper_Form_Element_Textarea('description_seo', NULL, NULL, _t('文章description描述'), _t('文章SEO描述'));
$description_seo->input->setAttribute('style', 'width:100%;height:100px');
$layout->addItem($title_seo);
$layout->addItem($keywords_seo);
$layout->addItem($description_seo);

(二)header文件引用字段值

我们在主题目录下的header.php文件中引用自定义字段值,需要注意的是,先判断字段值是否为空(也就是你在编辑文章时是否填写了seo标题/描述/关键词),如果为空则使用默认的标题/描述/关键词,不为空则用seo内容。
查找代码

<?php $this->header('

替换为:

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

<head></head>之间添加下面代码:

<meta name="description" content="<?php if(empty($this->fields->description_seo)){ echo $this->description();}else{ echo $this->fields->description_seo;};?>" />
<meta name="keywords" content="<?php if(empty($this->fields->keywords_seo)){ echo $this->keywords();}else{ echo $this->fields->keywords_seo;};?>" />

三、结束

此时,教程已结束,具体效果可参考本站文章页的效果。如有疑问,请在下方留言。

文章目录