在使用dedecmsCMS时,为了优化SEO效果,我们可以为文章中的图片自动添加ALT属性,并将其设置为文章标题。这种方法特别适合运行在PHP7.0环境下的网站。以下是实现这一功能的具体步骤。

首先,我们需要对/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("\\""", "/>", $newurl);
    return $newurl;
}
    

接下来,在需要调用dedecmsCMS文章内容的地方,添加以下代码:


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

以上两步操作完成后,就可以实现为文章中的图片自动添加ALT属性为标题的功能。

此外,如果之前您已经通过《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("\\""", "/>", $newurl);
    return $newurl;
}
    

通过以上方法,您可以更高效地优化网站内容,提高搜索引擎排名。