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 相关文章推荐
PHP个人网站架设连环讲(一)
Oct 09 PHP
PHP脚本中include文件出错解决方法
Nov 20 PHP
PHP的curl实现get,post和cookie(实例介绍)
Jun 17 PHP
php获取淘宝分类id示例
Jan 16 PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
May 16 PHP
PHP生成短网址方法汇总
Jul 12 PHP
php实现base64图片上传方式实例代码
Feb 22 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
Laravel利用gulp如何构建前端资源详解
Jun 03 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
Sep 30 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
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
PHP转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
php获取系统变量方法小结
2015/05/29 PHP
PHP生成条形码大揭秘
2015/09/24 PHP
PHP内核探索之变量
2015/12/22 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
php并发加锁示例
2016/10/17 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
JS实现定时页面弹出类似QQ新闻的提示框
2013/11/07 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
javascript制作游戏开发碰撞检测的封装代码
2015/03/31 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
2015/08/27 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
jQuery实现简单的图片查看器
2020/09/11 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
NodeJS处理Express中异步错误
2017/03/26 NodeJs
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
Python专用方法与迭代机制实例分析
2014/09/15 Python
json跨域调用python的方法详解
2017/01/11 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
python 日志增量抓取实现方法
2018/04/28 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
Android笔试题总结
2014/11/29 面试题
中专生的个人自我评价
2013/12/11 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
高中生家长寄语大全
2014/04/03 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书