首页 > 其他分享 >代码实现WordPress自动关键词keywords与描述description

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

时间:2022-12-09 23:23:20浏览次数:62  
标签:description replace WordPress str keywords post 描述

以下代码实现的是以标签为关键词;以摘要为描述,如果没有填写摘要,那就自动截取文章前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插件啦~

标签:description,replace,WordPress,str,keywords,post,描述
From: https://www.cnblogs.com/xiaobingch/p/16970512.html

相关文章

  • 【WordPress建站】3. 网站备份
    为什么备份?日常备份(防止被黑)网站搬家(更换主机)常见的备份方法:​​https://www.bilibili.com/video/BV11h411y7xo​​可以看下,能更好的理解备份搬家插件介绍All-in-OneWPMi......
  • 在wordpress开发的网站中添加在线客服咨询功能代码教程
    现在主流的PHP建站程序wordpress还是非常的流行,使用的人非常多如何在wordpress网站中增加在线客服咨询功能第一步:在唯一客服系统(gofly.v1kf.com)中注册账号,获取到客服js部......
  • ubuntu16.04 wordpress建站教程
    ubuntu16.04wordpress建站教程 image非常简单!!复制代码即可!服务器方面自选,我这里用的首都在线云主机(http://www.capitalonline.net/)(他家海外节点好便宜哈哈)首......
  • CodeSmith部署安装以及编写MySQL模板的时候无法获取description
    最近需要使用VS2015开发新项目,由于考虑到后期的扩展性,打算使用EF的codefirst模式来编写,但是前期又设计好了数据库结构,不想大动干戈的去重新写代码,网上搜索了说用“EntityF......
  • 全力打造国内版wordpress,小伙伴们快来围观!
    基于Thinkphp6+Element的插件化管理系统,网站、小程序、商城、CMS、APP、ERP、API接口一个系统全部搞定,无需脚手架开箱即用!主要特性支持php7.1+基于Auth验证的权限管理系......
  • 搭建WordPress个人博客
    简介WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。截至2018年4月,排名前1000万的网站中超过30.6%使用Word......
  • WordPress固定链接(伪静态)的设置方法及建议设置
    WordPress是一个CMS管理系统,也就是说,WordPress的文章、页面、存档页都是通过程序从数据库里面获取数据生成的。虽然WordPress的页面可以有千千万万个,但是我们访问这......
  • WordPress编辑器支持Word文档粘贴
    ​ ueditor粘贴不能粘贴word中的图片是一个很头疼的问题,在我们的业务场景中客户要求必须使用ueditor并且支持word的图片粘贴,因为这个需求头疼了半个月,因为前端方面因为安......
  • WordPress编辑器支持Word文档上传
    ​ 当前功能基于PHP,其它语言流程大致相同 1.新增上传wordjson配置在ueditor\php\config.json中新增如下配置:     /* 上传word配置 */    "wordAction......
  • WordPress编辑器支持Word文档导入
    ​ 当前功能基于PHP,其它语言流程大抵相同。大概流程:1.将docx文件上传到服务器中2.使用PHPoffice/PHPword实现将word转换为HTML3.将HTML代码返回并赋值到编辑器中......