Discuz教程网

Discuz门户文章中图片设置Alt属性

[复制链接]
authicon dly 发表于 2014-1-14 16:14:29 | 显示全部楼层 |阅读模式
Discuz系列的门户系统文章中图片的Alt属性,一直都是个比较头疼的问题,目前即使最新版本X3,也仅仅只是处理了论坛图片附件的Alt属性,而针对文章编辑器上传的图片,根本就没有地方设置Alt,这简直是对SEO的一种侮辱!
没有办法,我们只好自己想个“凑活的”办法:

1、下载simple_html_dom.php,官网地址:
游客,如果您要查看本帖隐藏内容请回复
2、将simple_html_dom.php上传到source/module/portal/下
3、修改source/module/portal/portal_view.php文件:

将以下代码:
  1. $article['related'] = array();
  2. if(($relateds = C::t('portal_article_related')->fetch_all_by_aid($aid))) {
  3.         foreach(C::t('portal_article_title')->fetch_all(array_keys($relateds)) as $raid => $value) {
  4.                 $article['related'][$raid] = $value['title'];
  5.         }
  6. }
复制代码

修改为:

  1. //处理文章内容中的图片Alt问题
  2. //为了避免图片的Alt属性重复,特给图片Alt增加一个编号;
  3. //BEGIN
  4. require_once 'simple_html_dom.php';
  5. $htmltemp = str_get_html($content['content']);
  6. $img_index = 1;
  7. foreach($htmltemp->find('img') as $eimg)
  8. {
  9.     if (!$eimg->alt) {
  10.         $eimg->alt = $article['title'].'('.$img_index.')';
  11.         $img_index = $img_index + 1;
  12.     }
  13. }
  14. $replaced_text = $htmltemp->root->outertext();
  15. $content['content'] = $replaced_text;
  16. //END

  17. $article['related'] = array();
  18. if(($relateds = C::t('portal_article_related')->fetch_all_by_aid($aid))) {
  19.         foreach(C::t('portal_article_title')->fetch_all(array_keys($relateds)) as $raid => $value) {
  20.                 $article['related'][$raid] = $value['title'];
  21.         }
  22. }
复制代码


保存文件,上传到对应目录即可。
注意,此方法只能是设置当前文章标题内容,无法自定义,真正解决问题的办法,还是需要Discuz官方修改文章的编辑器,让编辑在发布文章的时候,自己设置图片Alt属性。
游客,如果您要查看本帖隐藏内容请回复




上一篇:如何解决Discuz关联链接无法嵌套的问题
下一篇:Discuz远程附件图片裁切无法更新的问题修复
authicon a77 发表于 2014-10-24 10:31:38 | 显示全部楼层
文章图片alt信息一直在折腾 希望这个教程能解决
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 12:36

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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