DEDEBIZ文章内图片ALT、图片标题自动添加为标题、去掉图片样式
DEDEBIZ网站管理系统现在可以自动给文章内的图片加上ALT、标题并去掉图片的样式,这样即方便了SEO,又可以图片防止在某个分辨率下变形,但默认模板里面并没有实现这一效果,其实这一效果在扩展里面已经添加了,只需调用即可。
使用方法:打开内容页模板文件article_article.htm,把
{dede:field.body/}
修改为
{dede:field.body function='obtainalt(@me)'/}
就可以了。
效果如下图所示:
补充:由于我测试时,是在已发布的文章里面添加的图片,所以显示正常,但新发布文章时,出现了下面的错误:
临时解决方法:
把extend.func.php里面的代码替换一下。57行-70行
function obtainalt($newalt)
{
global $dsql, $id, $aid;
$myid = isset($id) ? $id : $aid;
$row = $dsql->GetOne("SELECT title FROM `#@__archives` WHERE id='$myid'");
//图片注释自动为标题
$newalt = str_ireplace(array('alt=""', 'alt=\'\'', 'title=""', 'title=\'\''), "", $newalt);
$newalt = str_ireplace("<img", "<img alt=\"".$row['title']."\" title=\"".$row['title']."\"", $newalt);
//去掉图片宽度和高度
$newalt = preg_replace("/style=\"width\:(.*)\"/", "", $newalt);
//去掉结尾
$newalt = str_ireplace(" /", "", $newalt);
return $newalt;
}
替换为
function obtainalt($newalt)
{
global $dsql, $id, $aid;
$myid = isset($id) ? $id : $aid;
$row = $dsql->GetOne("SELECT title FROM `#@__archives` WHERE id='$myid'");
// 检查$row是否有效
$title = isset($row['title']) ? $row['title'] : '';
// 图片注释自动为标题
$newalt = str_ireplace(array('alt=""', 'alt=\'\'', 'title=""', 'title=\'\''), "", $newalt);
$newalt = str_ireplace("<img", "<img alt=\"".$title."\" title=\"".$title."\"", $newalt);
// 去掉图片宽度和高度
$newalt = preg_replace("/style=\"width\:(.*)\"/", "", $newalt);
// 去掉结尾
$newalt = str_ireplace(" /", "", $newalt);
return $newalt;
}
替换后,发布文章 ,就没错误提示了。
最新版本的,把这个extend.func.php里面的内容清空了。你如果想需要这个功能 ,可以直接上面修改的代码放进去就行了。
声明:
1.本站主要是为了记录工作、学习中遇到的问题,可能由于本人技术有限,内容难免有纰漏,一切内容仅供参考。
2.本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!
3.本站所有原创作品,包括文字、资料、图片、网页格式,转载时请标注作者与来源。
1.本站主要是为了记录工作、学习中遇到的问题,可能由于本人技术有限,内容难免有纰漏,一切内容仅供参考。
2.本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!
3.本站所有原创作品,包括文字、资料、图片、网页格式,转载时请标注作者与来源。
THE END