演示链接:查看演示

dedecms在PHP7.0环境中为文章图片自动添加ALT属性为标题方法

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

然后在我们需要调用dedecmsCMS文章内容的地方加上调用代码:

 

{dede:field.body function='replaceurl(@me)'/}

 

由于之前在《dedecmsCMS如何去除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;
     }

 

THE END
喜欢就支持一下吧
点赞0 分享