http://www.example.com
。,3. 保存设置后,织梦会自动为内容图片和缩略图添加绝对域名。,,如果需要自定义域名,可以在模板中使用{dede:field name='body'/}
标签,并在标签属性中添加domain="http://www.example.com"
,,,“html,{dede:field name='body' domain="http://www.example.com"/},
“,,这样,织梦会在输出内容时自动为图片和缩略图添加指定的绝对域名。 在织梦CMS系统中,通过修改后台代码可以实现文章内容图片和缩略图自动带上绝对域名,这一功能对于使用不同服务器的PC端和手机端尤为重要,确保图片在不同平台上的正常显示。
实现方法
1. 修改添加和编辑文章时的缩略图路径
需要修改dede/article_add.php
和dede/article_edit.php
这两个文件,在这两个文件中,搜索以下代码:
if(preg_match("#j#", $flag)) $ismake = 1;
在这句代码的上方加入以下代码:
if($litpic!='' && !checkstr($litpic,$cfg_basehost)){ $litpic=$cfg_basehost.$litpic; }
2. 定义检查函数
在任意一个包含文件(如include/common.inc.php
)中,添加如下函数:
function checkstr($str,$str1){ //判断是否包含$str1这个字符 $tmparray = explode($str1,$str); if(count($tmparray)>1){ return true; } else{ return false; } }
这样,当上传缩略图时,系统会自动检查其URL是否包含域名,如果不包含,则自动添加域名。
3. 修改文章内容中的图片路径
如果希望文章内容中的图片也自动转换为带域名的绝对路径,可以修改include/dialog/select_images_post.php
和dede/inc/inc_archives_functions.php
两个文件。
在include/dialog/select_images_post.php
中,找到以下代码:
$path = $cfg_basedir . '/uploads/allimg/'.$year.'/'.$mon.'/'.$day.'/';
将其修改为:
$path = $cfg_basehost . '/uploads/allimg/'.$year.'/'.$mon.'/'.$day.'/';
在dede/inc/inc_archives_functions.php
中,找到以下代码:
$filename = $cfg_basedir . '/uploads/allimg/'.$year.'/'.$mon.'/'.$day.'/'.$filename;
将其修改为:
$filename = $cfg_basehost . '/uploads/allimg/'.$year.'/'.$mon.'/'.$day.'/'.$filename;
4. 注意事项
确保配置文件中的$cfg_basehost
正确设置,否则无法正常生成绝对路径。
修改代码前建议备份原始文件,以防出现意外情况。
FAQs
Q1: 为什么需要在插入数据库和修改数据库时处理缩略图路径?
A1: 这是因为在多服务器环境下,如果不加绝对路径,PC端和手机端可能无法正确显示同一数据库中的图片,通过在插入和修改数据库时处理缩略图路径,可以确保所有图片链接都带有绝对域名,从而在不同服务器上正常显示。
Q2: 如何确保文章内容中的图片也自动带上绝对域名?
A2: 除了修改缩略图路径外,还需修改include/dialog/select_images_post.php
和dede/inc/inc_archives_functions.php
两个文件,将相对路径替换为绝对路径,这样可以确保文章内容中的图片也能自动带上绝对域名。
图片和缩略图自动带上绝对域名,您可以通过以下几种方法:
1. 修改织梦内容模型
模型中,图片和缩略图字段通常使用upload
或editor
类型的字段来存储图片路径,您可以通过修改这些字段的处理逻辑来实现自动带上绝对域名。
步骤:
1、找到织梦的内容模型文件,通常是inc/model_content.class.php
。
2、在处理图片和缩略图上传的函数中,修改图片路径的生成逻辑,使其自动带上网站域名。
3、假设图片路径是$url = $this>upload>getUploadPath();
,您可以在$url
之前添加域名。
$url = 'http://www.yoursite.com' . $this>upload>getUploadPath();
2. 使用织梦钩子(Hook)
织梦提供了钩子机制,允许您在特定事件发生时插入自定义代码。
步骤:
1、在织梦后台的钩子管理中,添加一个新的钩子,用于处理图片路径。
2、编写钩子函数,修改图片和缩略图的路径。
function hook_content_image($content) { $domain = 'http://www.yoursite.com'; return str_replace('http://', $domain, $content); }
3. 使用织梦插件
如果以上方法不适用,您可以考虑开发一个织梦插件来实现这一功能。
步骤:
1、使用织梦提供的插件开发文档,创建一个新的插件。
2、在插件中编写代码,修改图片和缩略图的路径。
3、在织梦后台安装并启用插件。
注意事项:
在修改代码或开发插件时,请确保备份您的网站数据,以防万一出现问题。
以上方法可能需要一定的 PHP 和织梦框架知识,如果不确定,建议寻求专业人士的帮助。
希望这些信息能帮助您实现织梦内容图片和缩略图自动带上绝对域名的功能。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。