详情页

帝国CMS文章正文中图片img标签里alt属性自动替换为文章标题

时间:2022年07月10日

编辑:佚名

帝国CMS如何将文章正文中图片img标签里alt属性自动替换为文章标题?
文章正文中图片img标签的alt和tittle两个属性值从SEO和用户体验角度来讲,最好都进行撰写,尤其是alt属性。但是帝国CMS后台默认是需要手动对这两个值进行填写。每次在发布文章的时候,一篇文章内可能会插入好多张图片,每次一个个的去填写效率太低了。我在网上找了两个自动填充alt和title属性值的方法,并进行了测试,具体如下:
方法一:img标签同时自动填充alt和title属性值。
步骤1、复制下面的代码放到/e/class/userfun.php   (放到最后?>的前面)
//文章正文中图片img标签里alt属性自动替换为文章标题
function user_imgalt($mid,$f,$isadd,$isq,$value,$cs){
$title=$_POST['title'];
$htmls=$value;
$pattern = "/<img[^>]+>/"; 
preg_match_all($pattern, $htmls, $matches); 
for ($i=0; $i<=count($matches[0]); $i++) {
  preg_match_all("/alt=".+?"/",$matches[0][$i],$altimg); 
  preg_match_all("/title=".+?"/",$matches[0][$i],$titleimg); 
$t_alt=count($altimg[0]);
if($t_alt==0){
$htmls=str_replace("<img","<img alt="{$title}"",$htmls);
$htmls=str_replace("<img","<img title="{$title}"",$htmls);
}
}   
return $htmls;
}
步骤2、在【数据表与系统模型】-【管理数据表】选择对应的文章数据表,选择【管理字段】新闻正文字段一般是newstext(也可以是其它字段),在字段处理函数文本框填上user_imgalt 如下图:

帝国CMS 文章正文中图片img标签里alt属性自动替换为文章标题
步骤3、设置完毕提交后,发布信息的时候就可以自动替换图片alt和title属性为信息标题了,但是我在测试的时候发现图片img标签会多出一个空值的alt属性:alt="",测试了好几次都是同样的结果。
然后又尝试了第二种方法,具体方法如下:
方法二:img标签只自动填充alt属性值
步骤1、同上面方法一一样,也是在/e/class/userfun.php文件里添加一段代码,内容如下:
//文章正文中图片img标签里alt属性自动替换为文章标题
function user_AddImgAlt($mid,$f,$isadd,$isq,$value,$cs){
    $value=stripSlashes($value);
    $title=stripSlashes($_POST['title']);
    $title=str_replace('"','',$title);
    $zz2="/<(img|IMG) (.*?)alt="(.*?)"(.*?)>/is";
    $text=preg_replace($zz2,"<\1 \2\4>",$value);
    $zz1="/<(img|IMG) (.*?)>/is";
    $text=preg_replace($zz1,"<\1 alt="{$title}" \2>",$text);
    return $text;
}
步骤2、同方法一种一样,在数据表字段newstext 【后台增加信息处理函数】文本框内填上user_AddImgAlt,然后提交后即可。
此方法测试alt属性自动填充正确,但是这个函数并没有填充title属性。
两种方法大家可以根据自己的需要进行选择和改进,希望我的分享对您有所帮助。
相关文章
猜你需要