3个设置WordPress内容自动图片添加ALT和TITLE属性的脚本

作者 : 青柠哥 本文共2648个字,预计阅读时间需要7分钟 发布时间: 2023-10-14 共377人阅读

从SEO角度考虑,我们的每篇文章中的图片需要加上ALT和TITLE属性。不过,有些时候我们编辑文章的时候忘记添加属性,那我们有没有办法可以批量自动添加呢?在这篇文章中,我们可以通过可选的办法来通过自动给没有设置ALT和TITLE属性的图片自动添加这篇文章的标题作为2个属性。

1、方法1

function image_alttitle( $imgalttitle ){
global $post;
$category = get_the_category();
$flname=$category[0]->cat_name;
$btitle = get_bloginfo();
$imgtitle = $post->post_title;
$imgUrl = "<img\s[^>]*src=(\"??)([^\" >]*?)\\1[^>]*>";
if(preg_match_all("/$imgUrl/siU",$imgalttitle,$matches,PREG_SET_ORDER)){
if( !empty($matches) ){
for ($i=0; $i < count($matches); $i++){
$tag = $url = $matches[$i][0];
$j=$i+1;
$judge = '/title=/';
preg_match($judge,$tag,$match,PREG_OFFSET_CAPTURE);
if( count($match) < 1 )
$altURL = ' alt="'.$imgtitle.' '.$flname.' 第'.$j.'张" title="'.$imgtitle.' '.$flname.' 第'.$j.'张-'.$btitle.'" ';
$url = rtrim($url,'>');
$url .= $altURL.'>';
$imgalttitle = str_replace($tag,$url,$imgalttitle);
}
}
}
return $imgalttitle;
}
add_filter( 'the_content','image_alttitle');

2、方法2

function image_alttitle( $imgalttitle ){
global $post;
$category = get_the_category();
$flname=$category[0]->cat_name;
$btitle = get_bloginfo();
$imgtitle = $post->post_title;
$imgUrl = "<img\s[^>]*src=(\"??)([^\" >]*?)\\1[^>]*>";
if(preg_match_all("/$imgUrl/siU",$imgalttitle,$matches,PREG_SET_ORDER)){
if( !empty($matches) ){
for ($i=0; $i < count($matches); $i++){
$tag = $url = $matches[$i][0];
$j=$i+1;
$judge = '/title=/';
preg_match($judge,$tag,$match,PREG_OFFSET_CAPTURE);
if( count($match) < 1 )
$altURL = ' alt="'.$imgtitle.' '.$flname.' 第'.$j.'张" title="'.$imgtitle.' '.$flname.' 第'.$j.'张-'.$btitle.'" ';
$url = rtrim($url,'>');
$url .= $altURL.'>';
$imgalttitle = str_replace($tag,$url,$imgalttitle);
}
}
}
return $imgalttitle;
}
add_filter( 'the_content','image_alttitle');

3、方法3

function wpface_image_alt_title($content) {
  global $post;
  $alt_title = $post->post_title;
  preg_match_all('/<img(.*?)src=(\'|\")(.*?)\.(bmp|gif|jpeg|jpg|png)(\'|\")(.*?)>/i', $content, $matches);
  if($matches) {
    foreach($matches[0] as $val) {
      $place_content = $val;
      //先把空白?alt?和?title?属性清理掉
      $place_content = str_replace(' alt ', ' ', $place_content);
      $place_content = str_replace(' ', '', $place_content);
      $place_content = str_replace(' title ', ' ', $place_content);
      $place_content = str_replace(' title=""', '', $place_content);
      //如果想覆盖原来的?alt?或?title?属性,就把下面两句的注释取消
      //$place_content = preg_replace('/ alt="(.*?)"/', '', $place_content);
      //$place_content = preg_replace('/ title="(.*?)"/', '', $place_content);
      //判断如果没有?alt?或?title?属性就用文章标题添加
      if(strpos($place_content,'alt=')===false) {
        $place_content = str_replace("/>", "", $place_content).' alt="'.$alt_title.'"/>';
      }
      if(strpos($place_content,'title=')===false) {
        $place_content = str_replace("/>", "", $place_content).' title="'.$alt_title.'"/>';
      }
      //替换?img?标签
      $content = str_replace($val, $place_content, $content);
    }
  }
  return $content;
}
add_filter('the_content','wpface_image_alt_title');

以上方法我们选择一个即可。

青柠资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"www.qnziyw.cn",如遇到无法解压的请联系管理员!


青柠资源网 » 3个设置WordPress内容自动图片添加ALT和TITLE属性的脚本

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们。
找不到素材资源介绍文章里的示例图片?
对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单

发表回复