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 相关文章推荐
非常不错的MySQL优化的8条经验
Mar 24 PHP
yii框架源码分析之创建controller代码
Jun 28 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
Aug 09 PHP
PHP反射机制用法实例
Aug 28 PHP
php的curl封装类用法实例
Nov 07 PHP
PHP操作文件的一些基本函数使用示例
Nov 18 PHP
php递归函数三种实现方法及如何实现数字累加
Aug 07 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
Nov 09 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
Oct 26 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 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计数器的实现代码
2013/06/08 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
JS获取一个表单字段中多条数据并转化为json格式
2017/10/17 Javascript
JavaScript 中使用 Generator的方法
2017/12/29 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
解决vuex数据页面刷新后初始化操作
2020/07/26 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
Python中的迭代器漫谈
2015/02/03 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
软件配置管理有什么好处
2015/04/15 面试题
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
护理毕业生自我鉴定
2014/02/11 职场文书
安全宣传标语
2014/06/10 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
导游词之太湖
2019/10/08 职场文书