DEDECMS如果我们需要将不同目录绑定不同二级域名或者不同域名作为多站点使用,就需要开启系统设置里面的多站点支持功能,这样整站的附件图片,都会被自动加上主站的域名,比如原来文章中的/upload/allimg/1709/234214324.JPG这样形式的相对路径就会被自动替换成https://www.bnxb.com/upload/allimg/1709/234214324.JPG这种形式的绝对路径。
但是我们在使用中也发现目前版本的DEDE(5.7 SP2)存在一个BUG问题,开启后,因为文章中发布的图片都变成绝对地址,因此缩略图被自动提取后,也变成了绝对地址,但是在栏目页或者首页引用缩略图的时候,DEDE系统因为你开启了多站点支持因此又会在原来缩略图的外面再多套一个你的域名,就会使缩略图变成类似
所以后面发布的文章,缩略图就会全部无法显示。虽然我们可以用系统里面的批量维护-数据库内容替换 功能来将缩略图中的域名全部去掉,但是每次发布文章都要操作一次很麻烦,这里提供一个暂时的解决办法
修改DEDE/INC/inc_archives_functions.php
将
05 |
* @param string $body 文档内容 |
08 | function GetDDImgFromBody(&$body) |
11 |
preg_match_all( "/(src)=[" |'| ]{0,}([^>]*.(gif|jpg|bmp|png))/isU",$body,$img_array); |
12 |
$img_array = array_unique($img_array[2]); |
13 |
if (count($img_array)>0) |
15 |
$picname = preg_replace( "/[" | '| ]{1,}/", ' ', $img_array[0]); |
16 |
if (preg_match( "#_lit.#" , $picname)) $litpic = $picname; |
17 |
else $litpic = GetDDImage( 'ddfirst' , $picname,1); |
|
修改为
05 |
* @param string $body 文档内容 |
08 | function GetDDImgFromBody(&$body) |
12 |
preg_match_all( "/(src)=[" |'| ]{0,}([^>]*.(gif|jpg|bmp|png))/isU",$body,$img_array); |
13 |
$img_array = array_unique($img_array[2]); |
14 |
if (count($img_array)>0) |
16 |
$picname = preg_replace( "/[" | '| ]{1,}/", ' ', $img_array[0]); |
17 |
if (preg_match( "#_lit.#" , $picname)) $litpic = $picname; |
18 |
else $litpic = GetDDImage( 'ddfirst' , $picname,1); |
20 | $litpic = str_replace($cfg_basehost, "" ,$litpic); |
|
意思是只要缩略图中出现你网站的域名就自动去除。问题解决
其实就是增加了两行代码,
global $cfg_basehost;
和
$litpic = str_replace($cfg_basehost,"",$litpic);
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及版权问题,且不对任何资源负法律责任。
如无法下载,联系站长索要。
如有侵犯您的版权,请给我们来信:admin@cniao8.com,我们尽快处理。