WordPress的文章自动添加关键词及关键词的SEO优化


Posted in PHP onMarch 01, 2016

网站的关键字及网页描述关系网站对搜索引擎的友好程度,如果自己手动加显然太折腾了,那如何让wordpress博客自动为每篇文章自动关键字及网页描述。每篇文章的内容不同,我们该如何让wordpress自动添加文章描述和关键词呢?下面就让我们来看看如何给wordpress自动添加文章描述和关键词。
在你主题的functions.php文件添加以下代码,各个代码的功能解析如下:

add_action ( 'wp_head', 'wp_keywords' ); // 添加关键字
add_action ( 'wp_head', 'wp_description' ); // 添加页面描述
 
function wp_keywords() {
 global $s, $post;
 $keywords = '';
 if (is_single ()) { //如果是文章页,关键词则是:标签+分类ID
 if (get_the_tags ( $post->ID )) {
  foreach ( get_the_tags ( $post->ID ) as $tag )
  $keywords .= $tag->name . ', ';
 }
 foreach ( get_the_category ( $post->ID ) as $category )
  $keywords .= $category->cat_name . ', ';
 $keywords = substr_replace ( $keywords, '', - 2 );
 } elseif (is_home ()) {
 $keywords = '我是主页关键词'; //主页关键词设置
 } elseif (is_tag ()) { //标签页关键词设置
 $keywords = single_tag_title ( '', false );
 } elseif (is_category ()) {//分类页关键词设置
 $keywords = single_cat_title ( '', false );
 } elseif (is_search ()) {//搜索页关键词设置
 $keywords = esc_html ( $s, 1 );
 } else {//默认页关键词设置
 $keywords = trim ( wp_title ( '', false ) );
 }
 if ($keywords) { //输出关键词
 echo "<meta name=\"keywords\" content=\"$keywords\" />\n";
 }
}

function wp_description() {
 global $s, $post;
 $description = '';
 $blog_name = get_bloginfo ( 'name' );
 if (is_singular ()) { //文章页如果存在描述字段,则显示描述,否则截取文章内容
 if (! empty ( $post->post_excerpt )) {
  $text = $post->post_excerpt;
 } else {
  $text = $post->post_content;
 }
 $description = trim ( str_replace ( array (
  "\r\n",
  "\r",
  "\n",
  " ",
  " " 
 ), " ", str_replace ( "\"", "'", strip_tags ( $text ) ) ) );
 if (! ($description))
  $description = $blog_name . "-" . trim ( wp_title ( '', false ) );
 } elseif (is_home ()) {//首页显示描述设置
 $description = $blog_name . "-" . get_bloginfo ( 'description' ) .'首页要显示的描述'; // 首?要自己加
 } elseif (is_tag ()) {//标签页显示描述设置
 $description = $blog_name . "有关 '" . single_tag_title ( '', false ) . "' 的文章";
 } elseif (is_category ()) {//分类页显示描述设置
 $description = $blog_name . "有关 '" . single_cat_title ( '', false ) . "' 的文章";
 } elseif (is_archive ()) {//文档页显示描述设置
 $description = $blog_name . "在: '" . trim ( wp_title ( '', false ) ) . "' 的文章";
 } elseif (is_search ()) {//搜索页显示描述设置
 $description = $blog_name . ": '" . esc_html ( $s, 1 ) . "' 的搜索?果";
 } else {//默认其他页显示描述设置
 $description = $blog_name . "有关 '" . trim ( wp_title ( '', false ) ) . "' 的文章";
 }
 //输出描述
 $description = mb_substr ( $description, 0, 220, 'utf-8' ) . '..';
 echo "<meta name=\"description\" content=\"$description\" />\n";
}

突出关键字在搜寻结果:

function wps_highlight_results($text){
if(is_search()){
$sr = get_query_var('s');
$keys = explode(" ",$sr);
$text = preg_replace('/('.implode('|', $keys) .')/iu', '<strong>'.$sr.'</strong>', $text);
}
return $text;
}
add_filter('the_excerpt', 'wps_highlight_results');
add_filter('the_title', 'wps_highlight_results');

使用此代码段突出显示搜索词在你的博客搜索结果the_excerpt和the_title。

PHP 相关文章推荐
解决GD中文乱码问题
Feb 14 PHP
PHP面向接口编程 耦合设计模式 简单范例
Mar 23 PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 PHP
PHP5函数小全(分享)
Jun 06 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
Nov 04 PHP
PHP浮点数的一个常见问题
Mar 10 PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
PHP接口并发测试的方法(推荐)
Dec 15 PHP
PHP实现找出链表中环的入口节点
Jan 16 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
Apr 20 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 #PHP
php编程每天必学之表单验证
Mar 01 #PHP
实例讲解PHP设计模式编程中的简单工厂模式
Feb 29 #PHP
PHP Try-catch 语句使用技巧
Feb 28 #PHP
linux下为php添加iconv模块的方法
Feb 28 #PHP
PHP中模拟链表和链表的基本操作示例
Feb 27 #PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
Feb 27 #PHP
You might like
二十行语句实现从Excel到mysql的转化
2006/10/09 PHP
用PHP+MySql编写聊天室
2006/10/09 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
2014/12/18 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
TBCompressor js代码压缩
2011/01/05 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
javascript 获取图片尺寸及放大图片
2013/09/04 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
使用AngularJS实现可伸缩的页面切换的方法
2015/06/19 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
Python作用域用法实例详解
2016/03/15 Python
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
在Python中定义一个常量的方法
2018/11/10 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
python 实现关联规则算法Apriori的示例
2020/09/30 Python
中学生差生评语
2014/01/30 职场文书
安全生产责任书范本
2014/04/15 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
2015年试用期工作总结
2014/12/12 职场文书
悬空寺导游词
2015/02/05 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang
vue elementUI批量上传文件
2022/04/26 Vue.js
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python
Linux磁盘管理方法介绍
2022/06/01 Servers
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang