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 10 PHP
php生成excel列序号代码实例
Dec 24 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
Nov 24 PHP
php发送与接收流文件的方法
Feb 11 PHP
php封装的mysqli类完整实例
Oct 18 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 PHP
php插入mysql数据返回id的方法
May 31 PHP
PHP设计模式之策略模式原理与用法实例分析
Apr 04 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
Oct 02 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 PHP
PHP生成随机密码4种方法及性能对比
Dec 11 PHP
详解Laravel框架的依赖注入功能
May 27 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
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
php时间计算相关问题小结
2016/05/09 PHP
php简单统计中文个数的方法
2016/09/30 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
Vue使用虚拟dom进行渲染view的方法
2019/12/26 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
python的正则表达式re模块的常用方法
2013/03/09 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
Python 25行代码实现的RSA算法详解
2018/04/10 Python
对python函数签名的方法详解
2019/01/22 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
应届生法律求职信
2013/10/22 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
《风筝》教学反思
2016/02/23 职场文书
HTML基础详解(下)
2021/10/16 HTML / CSS
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL
CentOS MySql8 远程连接实战
2022/04/19 MySQL