最近在制作网站的时候客户提了个要求 能不能在发布文章的时候 把设置的标题自动填入 文章正文里面的ALT值
在上网找了好几个教程都没有效果 ,是不是帝国cms的大伙们都不喜欢发教程干货了、
一些其他的主流的CMS也有类似的插件了
无奈只能自己写一个了!
下面看步骤操作把
1、将以下代码放入 e/class/userfun.php 文件中,本代码为正文中图片的处理函数。
function yeskylog_ImgAlt($mid,$f,$isadd,$isq,$value) {
$value=stripSlashes($value);
$title=stripSlashes($_POST['title']);
$title.='_www.yeskylog.com'; //可以换成你的网站地址,如果不需要网站地址作为ALT后缀可以把此段代码删除或者注释掉
$pattern = '/<imgs+[^>]*alt="[^"]*"/i'; // 匹配<img>标签,并捕获alt属性(如果存在)
$replacement = '<img ${0} alt="' . htmlspecialchars($title, ENT_QUOTES, 'UTF-8') . '"'; // 替换alt属性
$htmlWithoutAlt = preg_replace('/alt="[^"]*"/i', '', $value);
$htmlWithNewAlt = preg_replace('/<imgs+/', '<img alt="' . htmlspecialchars($title, ENT_QUOTES, 'UTF-8') . '" ', $htmlWithoutAlt, 1);
return $htmlWithNewAlt;
}
2、修改数据表中需要通过本函数处理的字段。
需要启用此功能的数据表都需要修改。正文字段一般是newstext,也可以处理其他带有图文混排数据的字段,在字段处理函数文本框填上yeskylog_ImgAlt
3、完成。本函数增加alt内容是无差别替换,手工添加的图片alt、系统生成的图片名alt都会被替换,使用时请注意。
未经允许不得转载:YESKYLOG » 帝国cms发表文章正文中自动将title字段设置为图片alt的方法
写的真不错