帝国CMS自动替换正文img标签里的alt,title为标题名字

发布时间:2020-06-26 16:24:44www.zcabc.com 作者: 浏览:

帝国CMS自动替换正文img标签里的alt,title为标题名字,帝国CMS如何替换img标签的alt和title为标题?此方法替换会替换整个当前网页整体全部的alt标签,所以不建议大家轻易使用。

网上的方法基本会出现两次alt标签,对SEO不利,那么我们如何操作呢?有几种方法仅供参考。
方法一
众筹栈正文图片alt标签和title标签效果图

帝国CMS如何替换正文图片img标签里的alt,title为标题 第1张

下面分享众筹栈自用的方法:

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 里面增加下列函数

  1. //修改正文img的alt,title
  2. function user_AlterEditer($mid,$f,$isadd,$isq,$value,$cs){
  3.     $title=str_replace('"','',$_POST['title']);
  4.     $zhengze="/<img(.*?)img.zcabc.com(.*?) (.*?)>/i";
  5.     $value=preg_replace($zhengze,"<img src="https://img.zcabc.com\2>",$value);
  6.     $imgUrl = "<imgs[^>]*src=("??)([^" >]*?)\1[^>]*>";
  7.     if(preg_match_all("/$imgUrl/siU",$value,$matches,PREG_SET_ORDER)){
  8.         for ($i=0; $i < count($matches); $i++){
  9.           $before = $now = $matches[$i][0];
  10.           $altUrl = 'alt="'.$title.' 第'.($i+1).'张" title="'.$title.' 第'.($i+1).'张" ';
  11.           $now = ltrim($now,'<img ');
  12.           $now = '<img '.$altUrl.$now;
  13.           $value = str_replace($before,$now,$value);
  14.         }
  15.     }
  16.     return $value;
  17. }

注意:
将代码中的img.zcabc.com改成自己的网址,如www.abc.com
将代码中的https://img.zcabc.com改成http://www.abc.com

2)设置函数执行时间

位置:后台>系统设置>数据表与系统模型>管理数据表,点击管理字段。

帝国CMS如何替换正文图片img标签里的alt,title为标题 第2张

然后点击字段newstext后面的“修改”。

在“后台增加信息处理函数”和“后台修改信息处理函数”后添加user_AlterEditer,如图:

帝国CMS如何替换正文图片img标签里的alt,title为标题 第3张