帝国CMS自动替换正文img标签里的alt,title为标题名字,帝国CMS如何替换img标签的alt和title为标题?此方法替换会替换整个当前网页整体全部的alt标签,所以不建议大家轻易使用。
网上的方法基本会出现两次alt标签,对SEO不利,那么我们如何操作呢?有几种方法仅供参考。
方法一
众筹栈正文图片alt标签和title标签效果图
下面分享众筹栈自用的方法:
1)增加自定义函数
//在 e/class/connect.php 里面增加下列函数
//如何将内容模板中alt标签自动标题
// 放connect.php 最后面 自动内容页面alt标签
function replace_content($title,$newstext){
$newstext = stripcslashes($newstext);
$str = preg_replace('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i','<div class="news-pic"><img class="lazy" src="$2" width="100%" style="margin:8px 0" alt="'.$title.'"></a></div>',$newstext);
return $str;
}
//下面的代码替换掉内容模板的调用标签
<?php echo replace_content($navinfor['title'],$navinfor['newstext'])?>
此教程分享完毕,后面发布的内容图片alt和title标签将和众筹栈一样。
方法二(针对开发过的使用起来比较麻烦了所以酌情使用这两个方法)
1)增加自定义函数
在 e/class/userfun.php 里面增加下列函数
- //修改正文img的alt,title
- function user_AlterEditer($mid,$f,$isadd,$isq,$value,$cs){
- $title=str_replace('"','',$_POST['title']);
- $zhengze="/<img(.*?)img.zcabc.com(.*?) (.*?)>/i";
- $value=preg_replace($zhengze,"<img src="https://img.zcabc.com\2>",$value);
- $imgUrl = "<imgs[^>]*src=("??)([^" >]*?)\1[^>]*>";
- if(preg_match_all("/$imgUrl/siU",$value,$matches,PREG_SET_ORDER)){
- for ($i=0; $i < count($matches); $i++){
- $before = $now = $matches[$i][0];
- $altUrl = 'alt="'.$title.' 第'.($i+1).'张" title="'.$title.' 第'.($i+1).'张" ';
- $now = ltrim($now,'<img ');
- $now = '<img '.$altUrl.$now;
- $value = str_replace($before,$now,$value);
- }
- }
- return $value;
- }
注意:
将代码中的img.zcabc.com改成自己的网址,如www.abc.com
将代码中的https://img.zcabc.com改成http://www.abc.com
2)设置函数执行时间
位置:后台>系统设置>数据表与系统模型>管理数据表,点击管理字段。
然后点击字段newstext后面的“修改”。
在“后台增加信息处理函数”和“后台修改信息处理函数”后添加user_AlterEditer,如图: