Discuz教程网

Discuz X2论坛远程链接图片增加Alt属性的方法-完美版

[复制链接]
authicon dly 发表于 2012-7-31 12:02:05 | 显示全部楼层 |阅读模式
之前修改source\function\function_discuzcode.php文件来给Discuz! X2远程图片增加Alt的方法并不是很好,所以,我重新修改了一下,既能给图片增加Alt属性,还能避免每一张图片都有相同的Alt文字(标题),以免被搜索引擎认为是堆砌关键字,遭到K站。
具体修改如下:
随便找个function后面,把这个函数的代码增加上:
  1. function str_replace_once($needle, $replace, $haystack) {
  2. $pos = strpos($haystack, $needle);
  3. if ($pos === false) {
  4. return $haystack;
  5. }
  6. return substr_replace($haystack, $replace, $pos, strlen($needle));
  7. }
复制代码

然后,找到如下代码:
  1. $message = preg_replace(array(
  2. "/\[img\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies",
  3. "/\[img=(\d{1,4})[x|\,](\d{1,4})\]\s*([^\[\<\r\n]+?)\s*\[\/img\]/ies"
  4. ), $allowimgcode ? array(
  5. "bbcodeurl('\\1', '<img $attrsrc="{url}" onload="thumbImg(this)" alt="" />')",
  6. "parseimg('\\1', '\\2', '\\3', ".intval($lazyload).")"
  7. ) : array(
  8. (!defined('IN_MOBILE') ? "bbcodeurl('\\1', '<a href="{url}" target="_blank">{url}</a>')" : "bbcodeurl('\\1', '<a href="{url}" target="_blank">[$viewimg]</a>')"),
  9. (!defined('IN_MOBILE') ? "bbcodeurl('\\3', '<a href="{url}" target="_blank">{url}</a>')" : "bbcodeurl('\\3', '<a href="{url}" target="_blank">[$viewimg]</a>')"),
  10. ), $message);
复制代码
在这个代码后面,增加上如下代码:
  1. //Replace alt="" to alt="<forum_thread_short_title>"
  2. $imgalt = $_G[forum_thread][short_subject];
  3. $message = str_replace_once('alt=""','alt="'.$imgalt.'"',$message);
复制代码

这行做的目的就是把Alt为空的部分,替换成当前帖子的短标题,并且,只处理一次,不会被惩罚。另外,如果想多增加几个Alt信息,继续重复$message = str_replace_once('alt=""','alt="'.$imgalt.'"',$message);这句就可以了,替换成你自己想要的文字。
如果感觉麻烦,就直接下载我修改好的文件即可,下载地址:
游客,如果您要查看本帖隐藏内容请回复
本文系第一改装网(http://gai001.com)原创,转载请注明来源,谢谢!



上一篇:解决Discuz上传图片(附件)&quot;Upload Error: 500&quot;错误!
下一篇:Discuz X2.5 keywords和description只能看到“首页”的解决办法
authicon 倾城丶悲剧 发表于 2012-12-2 17:42:22 | 显示全部楼层
真是难得给力的帖子啊。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 14:15

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表