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 相关文章推荐
一个用于网络的工具函数库
Oct 09 PHP
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
Sep 30 PHP
晋城吧对DiscuzX进行的前端优化要点
Sep 05 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
Aug 21 PHP
php中使用PHPExcel读写excel(xls)文件的方法
Sep 15 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 PHP
PHP中预定义的6种接口介绍
May 12 PHP
PHP输出一个等腰三角形的方法
May 12 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
May 21 PHP
PHP上传图片类显示缩略图功能
Jun 30 PHP
Laravel学习教程之model validation的使用示例
Oct 23 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遍历并打印指定目录下所有文件实例
2014/02/10 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
2015/03/26 PHP
分享10段PHP常用代码
2015/11/11 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
Angular2 PrimeNG分页模块学习
2017/01/14 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
Python实现的视频播放器功能完整示例
2018/02/01 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
python_mask_array的用法
2020/02/18 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
最新大学职业规划书范文
2013/12/30 职场文书
法学函授自我鉴定
2014/02/06 职场文书
网站客服岗位职责
2014/04/05 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
年度考核个人总结
2015/03/06 职场文书
自我推荐信格式模板
2015/03/24 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
《自己的花是让别人看的》教学反思
2016/02/19 职场文书
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS