DEDE网站管理系统现在可以自动给文章内的图片加上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 `dede_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 `dede_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里面的内容清空了。你如果想需要这个功能 ,可以直接上面修改的代码放进去就行了。
发表评论