在网页前台鼠标右键“复制图片”,粘贴在编辑器的代码是有乱码的,还得自己手动一个个更改文章图片的ALT属性文字,显得很麻烦,于是想到让系统自动添加文字。
<img src="https://www.x.com/xx/xx/x/xx.jpg" alt="zblog文章页自动添加图片alt属性(文章标题作为alt值)" alt="广å®é¾å°é«ä¸40å¨å¹´åå¦èä¼å½±é-åå¦ç¾¤éå¤é£çºªå¿µç¸åæä¹å¶ä½?"/>
改造吧。
方法一
在主题的include.php文件:
function zbpNana_tupian_alt(&$template){
global $zbp;
$article = $template->GetTags('article');
$pattern = "/<img(.*?)src=('|\")([^>]*).(bmp|gif|jpeg|jpg|png|swf)('|\")(.*?)>/i";
$replacement = '<img alt="'.$article->Title.'" src=$2$3.$4$5/>';
$content = preg_replace($pattern, $replacement, $article->Content);
$article->Content = $content;
$template->SetTags('article', $article);
}
强制文章页所有图片 alt 属性为文章标题
function ActivePlugin_blog() {
global $zbp;
下面添加代码
Add_Filter_Plugin('Filter_Plugin_ViewPost_Template','zbpNana_tupian_alt');
方法二
为文章页图片添加 alt 和 title 属性
添加代码:
function zbpNana_tupian_alt( &$template ){
global $zbp,$altURL;
$article = $template->GetTags('article');
$imgtitle = $article->Title;
$imgUrl = "<img\s[^>]*src=(\"??)([^\" >]*?)\\1[^>]*>";
if(preg_match_all("/$imgUrl/siU",$article->Content,$matches,PREG_SET_ORDER)){
if( !emptyempty($matches) ){
for ($i=0; $i < count($matches); $i++){
$tag = $url = $matches[$i][0];
$j=$i+1;
$altURL = ' alt="'.$imgtitle.'第'.$j.'张-'.$zbp->name.'" title="'.$imgtitle.'第'.$j.'张-'.$zbp->name.'" ';
$url = rtrim($url,'>');
$url .= $altURL.'>';
$content = str_replace($tag,$url,$article->Content);
$article->Content = $content;
$template->SetTags('article', $article);
}
}
}
}
Add_Filter_Plugin('Filter_Plugin_ViewPost_Template','zbpNana_tupian_alt');
图片已经添加了 alt 和 title 属性,就不会再为该图片添加 alt 和 title 属性;如果某张图片只有 alt 属性,那么就会自动为它补上 title 属性;如果某张图片只有 title 属性,就会自动为它补上 alt 属性。
后台点击“清空缓存并重新编译模板”,可以看到效果。
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫