帝国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属性。
两种方法大家可以根据自己的需要进行选择和改进,希望我的分享对您有所帮助。
文章正文中图片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属性。
两种方法大家可以根据自己的需要进行选择和改进,希望我的分享对您有所帮助。
新闻资讯 更多
- 【帝国cms教程】帝国CMS模板变量$GLOBALS[navclassid]用法分析04-03
- 【帝国cms教程】鲜为人知帝国CMS内容页调用上一篇和下一篇的精华方法汇总04-03
- 【帝国cms教程】怎么快速找出帝国CMS数据库配置文件路径及迁移网站后修改技巧!04-03
- 【帝国cms教程】帝国CMS模板$GLOBALS[navclassid]用法详解04-03
- 【帝国cms教程】帝国cms 7.5版列表页分页样式修改笔记04-02
- 【帝国cms教程】解决帝国CMS搜索页面模板不支持灵动标签和万能标签的方法04-02
- 【帝国cms教程】帝国CMS只备份栏目和模板的方法04-02
- 【帝国cms教程】帝国CMS怎样删除清空数据库记录?04-02
热门文章
- 178Moban源码谈谈免费源码与收费源码的区别
- 2帝国CMS忘记后台登陆用户名、密码、认证码的解决方法
- 3帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
- 4帝国CMS和WordPress 哪个好?哪个适合建站?
- 5如何解决Discuz的密码错误次数过多请15分钟后登陆的问题
- 6帝国cms灵动标签取得内容和栏目链接地址
- 7emlog pro 注册码“开心”教程(如果有一天,emlog官方版 或者 emlog免费版 跑路了,那用户怎么办?)
- 8织梦CMS在nginx下设置伪静态方法(附nginx伪静态规则)
- 9帝国cms后台登录出现”您还未登录”怎么解决?
- 10帝国cms7.5忘记登录密码 和忘记登录认证码以及多次登录 失败被锁定解决办法