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提取中文首字母
Apr 09 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
PHP中单引号与双引号的区别分析
Aug 19 PHP
php获取根域名方法汇总
Oct 28 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
php判断两个日期之间相差多少个月份的方法
Jun 18 PHP
PHP的swoole扩展安装方法详细教程
May 18 PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
laravel中的一些简单实用功能
Nov 03 PHP
PHP中抽象类,接口功能、定义方法示例
Feb 26 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 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中的日期及时间
2006/11/23 PHP
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
webpack打包html里面img后src为“[object Module]”问题
2019/12/22 Javascript
Python实现统计单词出现的个数
2015/05/28 Python
Python实现文件内容批量追加的方法示例
2017/08/29 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
python3 http提交json参数并获取返回值的方法
2018/12/19 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
HTML5 video循环播放多个视频的方法步骤
2020/08/06 HTML / CSS
什么是Smart Navigation?
2016/07/03 面试题
数控技术应届生求职信
2013/11/13 职场文书
政府法律服务方案
2014/06/14 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
党员民主评议自我评价
2014/10/20 职场文书
新手必备Python开发环境搭建教程
2021/05/28 Python
Python pandas求方差和标准差的方法实例
2021/08/04 Python
Apache Hudi 加速传统的批处理模式
2022/04/24 Servers