織夢本身沒有批量添加或自動替換圖片alt描述的功能,而使用織夢建站的朋友都有很多采集來的文章,大部分圖片都沒有alt屬性,非常不利于SEO優(yōu)化,手工添加又太費時費力,怎么辦呢?
下面以織夢5.7為例介紹下怎么給你網(wǎng)站所有文章里的圖片自動添加ALT屬性,其他版本應(yīng)該也可以,網(wǎng)上這一類的教程很多,網(wǎng)友在5.3/5.5版測試通過,5.6沒試過,本文教程在織夢最新版5.7測試通過:
織夢5.7版自動給圖片添加alt屬性具體解決方法:
一. 找到網(wǎng)站Include目錄下的arc.archives.class.php 文件并打開
?。?a href='http://www.jygsgssxh.com/dedecms_mb/' target='_blank'>模板標(biāo)簽:{dede:field.body/} ,如果是其它字段,可以修改$this->Fields['body'] 為其它的字段名。)
二. 用組合鍵 Ctrl+F 查找下面的這段代碼
//設(shè)置全局環(huán)境變量
$this->Fields['typename'] = $this->TypeLink->TypeInfos['typename'];
SetSysEnv($this->Fields['typeid'],$this->Fields['typename'],$this->Fields['aid'],$this->Fields['title'],'archives');
三. 在以上代碼下面添加以下代碼即可
//替換圖片Alt為文檔標(biāo)題
$this->Fields['body'] = str_ireplace(array('altalt=""','alt=\'\''),'',$this->Fields['body']);
$this->Fields['body'] = preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU"," ",$this->Fields['body']);
$this->Fields['body'] = str_ireplace("<img " ,"<img alt='".$this->Fields['title']."' ",$this->Fields['body']);
溫馨提示:這一步做一點補充,大家注意看下這段代碼
<img alt='".$this->Fields['title']."'
如果文章標(biāo)題是 “新手如何推廣網(wǎng)站” 則生成后的文章內(nèi)圖片的img屬性就是“新手如何推廣網(wǎng)站” ,我將其改為了下面的這段代碼,使其實現(xiàn)圖片ALT屬性樣式為 alt=”新手如何推廣網(wǎng)站_lazybirdfly.com” ,這里的 _lazybirdfly.com 可以用你網(wǎng)站的主推關(guān)鍵詞或網(wǎng)址來替換。
<img alt='"".$this->Fields['title']."_lazybirdfly.Com'"
這里是alt屬性的替換規(guī)則,默認是替換為文章的標(biāo)題,稍微轉(zhuǎn)換下思路,其實也可以用tag標(biāo)簽或別的文章屬性來代替。
四. 由于使用了正則處理,會降低一些生成速度,如果數(shù)據(jù)量小,則可以忽略。