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 Mysql编程之高级技巧
Aug 27 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
Apr 18 PHP
基于curl数据采集之正则处理函数get_matches的使用
Apr 28 PHP
php实现微信公众平台账号自定义菜单类
Dec 02 PHP
php redis实现对200w用户的即时推送
Mar 04 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 PHP
php删除二维数组中的重复值方法
Mar 12 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 26 PHP
TP5框架安全机制实例分析
Apr 05 PHP
PHP实现随机发扑克牌
Apr 22 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
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
PHP获取当前执行php文件名的代码
2017/03/02 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
QUnit jQuery的TDD框架
2010/11/04 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
python判断端口是否打开的实现代码
2013/02/10 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
python3+PyQt5实现拖放功能
2018/04/24 Python
使用pytorch进行图像的顺序读取方法
2018/07/27 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
建筑设计师岗位职责
2013/11/18 职场文书
英语感恩演讲稿
2014/01/14 职场文书
旺仔牛奶广告词
2014/03/20 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
《广玉兰》教学反思
2014/04/14 职场文书
教师三严三实心得体会
2014/10/11 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL
python数字图像处理实现图像的形变与缩放
2022/06/28 Python