top

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;
}

替换后,发布文章 ,就没错误提示了。

 

THE END
icon
0
icon
打赏
icon
分享
icon
二维码
icon
海报