代码实现WordPress自动关键词keywords与描述description

之前在文章《WordPress自定义栏目运用实例II:添加文章Meta标签(keywords /description)》中给出了手动添加关键词keywords与描述description的方法,但这个方法实在是过于麻烦——每篇文章你要手动一个个添加关键词或描述。写个文章都要这样真不爽啊,有没有方法可以像 all in one seo插件那样自动动关键词keywords与描述description?当然是有滴,本站目前就是使用这个方法。

以下代码实现的是以标签为关键词;以摘要为描述,如果没有填写摘要,那就自动截取文章前200字为描述。代码原创者未知,如果是你原创的,麻烦告知~~

代码实现WordPress自动关键词与描述

以下代码放到你的主题下funtions.php的最后一个 ?>前:

//自动关键词与描述 Devework.com function get_cats_name() { $allcats=get_categories(); foreach ($allcats as $category) { $keywords[] = $category->cat_name; } return $keywords; } // utf8 substr function utf8Substr($str, $from, $len) { return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'. '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s', '$1',$str); } // Meta SEO function meta_SEO() { global $post; $output = ''; if (is_single()){//如果是文章页 $keywords = ''; $description = ''; if ($post->post_excerpt) {//如果文章摘要存在就以文章摘要为描述 $description = $post->post_excerpt; $description = str_replace("\r\n","",$description); $description = str_replace("\n","",$description); $description = str_replace("\"","'",$description); $description .= '...'; } else {//如果文章摘要不存在就截断文章前200字为描述 $description = utf8Substr(strip_tags($post->post_content),0,200); $description = str_replace("\r\n","",$description); $description = str_replace("\n","",$description); $description = str_replace("\"","'",$description); $description .= '...'; } $tags = wp_get_post_tags($post->ID);//取文章标签 foreach ($tags as $tag ) { $keywordarray[] = $tag->name; } //以文章标签为关键字 $keywords = implode(',',array_unique((array)$keywordarray)); } else {//如果不是文章页 $keywords = '电脑知识,wordpress,系统操作,网络应用,软件硬件,IT资讯,windows8,windows7'; //在引号间写入你博客的关键字用,断开 $description = '探讨电脑知识,分享网络资源';//在引号间写入你博客的简单描述,不要过200字 } //输出关键字 $output .= '<meta name="keywords" content="' . $keywords . '" />' . "\n"; $output .= '<meta name="description" content="' . $description . '" />' . "\n"; //输出描述 echo "$output\n"; } add_action('wp_head', 'meta_SEO');//添加meta_SEO函数到头部信息里

第43行与第44行的内容需要根据你的网站进行修改。

目前本站devework.com正在使用的代码:

在这个上面代码的基础上,我的代码是这样的:

//自动关键词与描述 Devework.com function meta_SEO() { global $post; $output = ''; if (is_single()){//如果是文章页 $keywords = ''; $description = ''; if ($post->post_excerpt) {//如果文章摘要存在就以文章摘要为描述 $description = $post->post_excerpt; $description = str_replace("\r\n","",$description); $description = str_replace("\n","",$description); $description = str_replace("\"","'",$description); $description .= '...'; } else {//如果文章摘要不存在就截断文章前200字为描述 $description = utf8Substr(strip_tags($post->post_content),0,200); $description = str_replace("\r\n","",$description); $description = str_replace("\n","",$description); $description = str_replace("\"","'",$description); $description .= '...'; } $tags = wp_get_post_tags($post->ID);//取文章标签 foreach ($tags as $tag ) { $keywordarray[] = $tag->name; } //以文章标签为关键字 $keywords = implode(',',array_unique((array)$keywordarray)); } else if (is_category()){ $description = strip_tags(trim(category_description())); $keywords = single_cat_title('', false); }else {//如果不是文章页、分类页 $keywords = 'WordPress,wordpress主题,wordpress插件,WordPress开发,代码,前端,建站'; //在引号间写入你博客的关键字用,断开 $description = '一个有关WordPress技巧与前端开发知识的个人博客,以分享、研究探讨WordPress技巧为主要内容,博主乃WordPress极客一枚';//在引号间写入你博客的简单描述,不要过200字 } //输出关键字 $output .= '<meta name="keywords" content="' . $keywords . '" />' . "\n"; $output .= '<meta name="description" content="' . $description . '" />' . "\n"; //输出描述 echo "$output"; }

代码还是放到你的主题下funtions.php的最后一个 ?>前。我的话为分类目录添加以“目录名”为关键词,“分类描述”为描述,因为为每一个分类都写了一个描述(在后台文章-分类目录那里可以写)。而且在删除了最后一句add_action('wp_head', 'meta_SEO');//添加meta_SEO函数到头部信息里而直接在header.php文件的下面直接加上下面一句引用:

<?php echo meta_SEO(); ?>

如果使用这个加上《代码重写WordPress网页标题为“原网页标题|网站名”的形式》的方法的话,基本上你可以不用 All in one seo插件啦~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏青玉伏案

iOS可视化动态绘制连通图(Swift版)

上篇博客《iOS可视化动态绘制八种排序过程》可视化了一下一些排序的过程,本篇博客就来聊聊图的东西。在之前的博客中详细的讲过图的相关内容,比如《图的物理存储结构与...

2727
来自专栏Young Dreamer

基于Webkit的浏览器关键渲染路径介绍

关键渲染路径概念 浏览器是如何将HTML、JS、CSS、image等资源渲染成可视化的页面的呢?本文简单介绍一下渲染过程中涉及到的关键步骤。 该过程分为四步:模...

2109
来自专栏偏前端工程师的驿站

JS魔法堂:IMG元素加载行为详解

一、前言                               在《JS魔法堂:jsDeferred源码剖析》中我们了解到img元素加载失败可以作为函数异...

1996
来自专栏轻扬小栈

让人纠结的首行缩进

1212
来自专栏DeveWork

解决七牛云存储缓存加速Gravatar 头像图片路径url 参数失效的问题

前天分享了《通过七牛云存储 缓存加速Gravatar头像,解决被墙问题》,不过这昨天发现通过七牛云存储缓存加速Gravatar 头像,会导致头像图片所在的路径 ...

2107
来自专栏web

我之理解---计时器setTimeout 和clearTimeout

1394
来自专栏HT

基于HTML5快速搭建TP-LINK电信拓扑设备面板

  今天我们以真实的TP-LINK设备面板为模型,完成设备面板的搭建,和指示灯的闪烁和图元流动。   先来目睹下最终的实现效果:http://www.hight...

24010
来自专栏hightopo

基于HTML5快速搭建TP-LINK电信拓扑设备面板

1273
来自专栏葡萄城控件技术团队

三天学会HTML5 之第一天

引言 HTML5 一直是非常热门的话题,因此此系列文章主要从一些基本功能开始讲起,逐步深入了解HTML5的新概念。 首先了解一些基本的术语和概念。 SGML, ...

2207
来自专栏雨过天晴

控制台输出颜色控制(Console

前端时间,写了一篇 PHP 在 Console 模式下的进度显示 ,正好最近的一个数据合并项目需要用到控制台颜色输出,所以就把相关的信息整理下,写到OSC的博客...

8641

扫码关注云+社区