DZ原生代码交流学习,买插件不如自己动手解决
 
发新帖
楼主: 天启
查看: 1168|回复: 0

[教程] DZ关键词keyword与描述description不显示解决方案

[复制链接]
天启VIP6 发表于 2019-11-15 23:56:50 | 显示全部楼层
本帖最后由 天启 于 2019-11-16 00:16 编辑

原因分析:现在为了节省一些流量,在查看源代码的时候,只有管理员可以看到页面中的 keyword 和 description,而其他普通会员和游客是看不到的,但是蜘蛛是可以看到的,不相信的朋友可以模拟蜘蛛看看结果。
问题所在:目前发现的问题是如果开启了游客缓存,那么游客触发缓存后,会造成蜘蛛爬行的时候也读了缓存,那么就会造成蜘蛛找不到 keyword 与 description 了,所以可以做如下修改,如下修改后,游客也可以看到这两项了,如果开启了游客缓存,则需要将游客缓存删除一下才会生效。

修改文件:source/class/helper/helper_seo.php
搜索:
  1. if($descriptiontext && (isset($_G['makehtml']) || CURSCRIPT == 'forum' || IS_ROBOT || $_G['adminid'] == 1))
复制代码
改为:
  1. if($descriptiontext && (isset($_G['makehtml']) || CURSCRIPT == 'forum' || CURSCRIPT == 'portal' || IS_ROBOT || $_G['adminid'] == 1))
复制代码

搜索:
  1. if($keywordstext && (isset($_G['makehtml']) || CURSCRIPT == 'forum' || IS_ROBOT || $_G['adminid'] == 1)) {
复制代码
修改成:
  1. if($keywordstext && (isset($_G['makehtml']) || CURSCRIPT == 'forum' || CURSCRIPT == 'portal' || IS_ROBOT || $_G['adminid'] == 1)) {
复制代码


如果想要完全放开SEO设置给游客看,那么可以将
  1.                         if($descriptiontext && (isset($_G['makehtml']) || CURSCRIPT == 'forum' || IS_ROBOT || $_G['adminid'] == 1)) {
  2.                                 $seodescription = helper_seo::strreplace_strip_split($searchs, $replaces, $descriptiontext);
  3.                         }
  4.                         if($keywordstext && (isset($_G['makehtml']) || CURSCRIPT == 'forum' || IS_ROBOT || $_G['adminid'] == 1)) {
  5.                                 $seokeywords = helper_seo::strreplace_strip_split($searchs, $replaces, $keywordstext);
  6.                         }
复制代码
改为
  1.                         if($descriptiontext) {
  2.                                 $seodescription = helper_seo::strreplace_strip_split($searchs, $replaces, $descriptiontext);
  3.                         }
  4.                         if($keywordstext) {
  5.                                 $seokeywords = helper_seo::strreplace_strip_split($searchs, $replaces, $keywordstext);
  6.                         }
复制代码

帖子内容详情SEO设置找到  source\module\forum\forum_viewthread.php
搜索:
  1. if(!$_G['forum_thread']['price'] && (IS_ROBOT || $_G['adminid'] == 1)) $summary = str_replace(array("\r", "\n"), '', messagecutstr(strip_tags($post['message']), 160));
复制代码
修改为:
  1. $summary = str_replace(array("\r", "\n"), '', messagecutstr(strip_tags($post['message']), 160));
复制代码


快速回复 返回顶部 返回列表