织梦在PHP7.0环境中为文章图片自动添加ALT属性为标题方法,首先修改/include/extend.func.php,里面的把这段代码加进去:
//文章body优化替换 function replaceurl($newurl) { global $dsql,$id; //获取图片附加表imgurls字段内容进行处 $row = $dsql->GetOne("SELECT title FROM dede_archives where id=$id"); //替换图片Alt为文档标题 $newurl=str_ireplace(array('alt=""','alt=\'\''),'',$newurl); $newurl=preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU"," ",$newurl); $newurl=str_ireplace("<img " ,"<img alt=\"".$row['title']."\"",$newurl); //去掉结尾空格 $newurl=str_ireplace(" /","/",$newurl); $newurl=str_ireplace(" />","/>",$newurl); return $newurl; }
然后在我们需要调用织梦文章内容的地方加上调用代码:
{dede:field.body function='replaceurl(@me)'/}
由于之前在《织梦如何去除img图片中的style width height属性》一文中,实现去高宽属性,既然我们今天用自定义函数实现了替换alt属性,那么也可以把去高宽属性的这个功能加进去,完整代码如下:
//文章body优化替换 function replaceurl($newurl) { global $dsql,$id; //获取图片附加表imgurls字段内容进行处 $row = $dsql->GetOne("SELECT title FROM dede_archives where id=$id"); //去掉img的width和height $newurl=preg_replace('/style=\"width\:(.*)\"/','',$newurl); //替换图片Alt为文档标题 $newurl=str_ireplace(array('alt=""','alt=\'\''),'',$newurl); $newurl=preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU"," ",$newurl); $newurl=str_ireplace("<img " ,"<img alt=\"".$row['title']."\"",$newurl); //去掉结尾空格 $newurl=str_ireplace(" /","/",$newurl); $newurl=str_ireplace(" />","/>",$newurl); return $newurl; }