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实现的功能是显示8条基色色带
Oct 09 PHP
PHP读MYSQL中文乱码的解决方法
Dec 17 PHP
php使用curl简单抓取远程url的方法
Mar 13 PHP
php实现随机显示图片方法汇总
May 21 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
PHP页面转UTF-8中文编码乱码的解决办法
Oct 20 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
Jun 24 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
Oct 17 PHP
laravel 解决多库下的DB::transaction()事务失效问题
Oct 21 PHP
tp5.1 框架join方法用法实例分析
May 26 PHP
php中try catch捕获异常实例详解
Aug 06 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缓存机制Output Control详解
2014/07/14 PHP
Zend Framework入门教程之Zend_Config组件用法详解
2016/12/09 PHP
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
Python交互式图形编程的实现
2019/07/25 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
Noon埃及:埃及在线购物
2019/11/26 全球购物
菜篮子工程实施方案
2014/03/08 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
医学专业大学生职业生涯规划书
2014/10/25 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
详解Python函数print用法
2021/06/18 Python
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang