在织梦CMS系统中,图片的ALT属性对于SEO优化和提升网站的可访问性非常重要,通过自动调用文章标题作为图片的ALT属性,可以大大减少手动操作的繁琐,并确保每张图片都有合适的描述,以下是实现这一功能的方法:
1、修改arc.archives.class.php文件:
找到目录include中的arc.archives.class.php
文件。
搜索以下代码段:
$this>Fields['typename'] = $this>TypeLink>TypeInfos['typename']; @SetSysEnv($this>Fields['typeid'],$this>Fields['typename'],$this>Fields['id'],$this>Fields['title'],'archives');
在上述代码下面添加如下代码:
// 替换图片Alt为文档标题 $this>Fields['body'] = str_ireplace(array('alt=""','alt='''), '', $this>Fields['body']); $this>Fields['body'] = preg_replace("@ [s]{0,}alt[s]{0,}=["'s]{0,}[sS]{0,}["'s] @isU", " ", $this>Fields['body']); $this>Fields['body'] = str_ireplace("<img ", "<img alt="".$this>Fields['title']."" ", $this>Fields['body']);
保存文件并更新生成文章内容即可。
2、使用自定义函数实现:
打开/include/extend.func.php
文件,在最下面加入以下代码:
function replaceurl($newurl) { global $dsql, $id; $row = $dsql>GetOne("SELECT title FROM dede_archives WHERE id=$id"); $newurl = str_ireplace(array('alt=""', 'alt='''), '', $newurl); $newurl = preg_replace("@[/s]{0,}alt[/s]{0,}=[/"'/s]{0,}[/s/S]{0,}[/"'/s]@isU", "", $newurl); $newurl = str_ireplace("<img", "<img alt="".$row['title'].""", $newurl); return $newurl; }
前端调用代码修改为:{dede:field.body function='replaceurl(@me)'/}
。
3、通过模板文件修改:
打开织梦CMS后台,找到需要修改的模板文件,通常位于/templets/default/
目录下。
对于文章图片的ALT注释修改,编辑article_article.htm
文件;对于图集图片的ALT注释修改,编辑image_collect.htm
文件。
在模板文件中,找到图片标签(如<img>
),将其alt属性值修改为{dede:field name='title'/}
,表示将ALT注释设置为文章标题。
保存修改后的模板文件,然后重新生成文章或图集页面,即可看到图片的ALT注释已经修改为文章标题。
4、编写自定义函数:
在/include/helpers/archive.helper.php
文件中添加以下代码:
function setImageAltToTitle($imgTag, $title) { if (preg_match('/]+>/i', $imgTag, $matches)) { $newImgTag = preg_replace('/]+)>/i', ' alt="' . $title . '" />', $matches[0]); return str_replace($matches[0], $newImgTag, $imgTag); } return $imgTag; }
打开/include/arc.archives.class.php
文件,找到以下代码段:
$content = $this>dsql>GetOne("SELECT content FROM #@__archives WHERE id='$aid'"); $content = preg_replace('/r|r| /', '', $content);
将其替换为:
$content = $this>dsql>GetOne("SELECT content FROM #@__archives WHERE id='$aid'"); $title = $this>dsql>GetOne("SELECT title FROM #@__archives WHERE id='$aid'"); $content = preg_replace_callback('/]+>/i', function ($matches) use ($title) { return setImageAltToTitle($matches[0], $title); }, $content); $content = preg_replace('/r|r| /', '', $content);
清理DedeCMS缓存并重新生成HTML页面,以确保更改生效。
通过以上方法,可以实现织梦CMS系统文章图片ALT自动调用标题的功能,提高网站SEO优化效果和用户体验。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1227469.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复