很多新手站长都不知道图片的alt、title属性有什么作用,以至于很多文章都没设置这两个属性,当知道会影响SEO时,发现文章太多,手动添加累得不行,今天给大家带来几个WordPress代码自动添加为文章图片添加alt、title属性的方法。

 

一、其实这个问题的解决办法非常简单,无非是利用WordPress钩子,当WordPress在加载文章内容时,使用正则替换掉内容而已。

 

WordPress代码

 

将下面代码加载你主题目录下的functions.php文件中,即可自动为文章内图片添加上alt、title属性。

 

function imgcreate($content){
//匹配图片地址正则,如果你的img标签没有class属性你可以使用这个正则
$preg = "/<img.*?src=["|'](.*?)["|'].*?>/";
//匹配图片class属性与src属性正则,如需替换更多自行添加。
$preg1 = "/<img.*?class=["|'](.*?)["|'].*?src=["|'](.*?)["|'].*?>/";
//用来替换的alt属性值
$alt = "1234";
//用来替换的title属性值
$title = "123456";
//采用替换class与src正则使用
$img = '<img class="$1" src="$2" alt="'.$alt.'"title="'.$title.'">';
//采用替换src正则使用
//$img = '<img src="$1" alt="'.$alt.'"title="'.$title.'">';
//执行正则替换
$content = preg_replace($preg1,$img,$content);
return $content;
}
//加载文章内容的触发钩子函数
add_action('the_content','imgcreate');

 

代码的意思都已经写得很清楚明白了,根据你的文章图片代码,自行选择使用哪种正则即可。如果你需要扩展正则匹配更多内容,比如你还需要匹配width属性,那么你可以参考下面的写法:

 

正则表达式匹配class、src、width:

$preg1 = “/<img.?class=“|’[“|’].?src=“|’[“|’].?width=“|’[“|’].?>/”

 

重构img标签HTML代码:

$img = '<img class="$1" src="$2" width="$3" alt="'.$alt.'"title="'.$title.'">';

 

我写这么多内容就是为了让大家看出其中的规律,别老想着找到完全和自己心意的代码,有那功夫还不如仔细读读这篇文章,读懂了你要怎样替换都行。

 

注意:假如你的文章图片没有class属性,而你使用了含有匹配图片class属性的正则,那么你的正则将会实现,匹配不到任何值,所以准确选择自己需要的正则才是实现自动为文章图片添加alt、title属性功能的关键!(以上转自:https://www.daimadog.com/3398.html)

 

二、三段代码选其一

 

1.判断并自动添加图片 Alt 属性、强制添加图片 Title 属性

 

/**
* WordPress判断并自动添加图片alt和title属性
* https://www.ilxtx.com/how-to-add-alt-and-title-properties-to-image-automatically.html
*/
/* 智能判断添加图片alt属性*/
    function lxtx_image_alt( $imgalt ){
            global $post;
            $title = $post->post_title;
            $imgUrl = "<imgs[^>]*src=("??)([^" >]*?)\1[^>]*>";
            if(preg_match_all("/$imgUrl/siU",$imgalt,$matches,PREG_SET_ORDER)){
                    if( !empty($matches) ){
                            for ($i=0; $i < count($matches); $i++){
                                    $tag = $url = $matches[$i][0];
                                    $judge = '/alt=/';
                                    preg_match($judge,$tag,$match,PREG_OFFSET_CAPTURE);
                                    if( count($match) < 1 )
                                    $altURL = ' alt="'.$title.'" ';
                                    $url = rtrim($url,'>');
                                    $url .= $altURL.'>';
                                    $imgalt = str_replace($tag,$url,$imgalt);
                            }
                    }
            }
            return $imgalt;
    }
    add_filter( 'the_content','lxtx_image_alt');
 
/* 强制用文章标题作为图片的title属性。不想设置图片的title属性的话可删除掉下面的代码! */
function lxtx_image_title($content){
    global $post;
    $pattern = "/<img(.*?)src=('|")(.*?).(bmp|gif|jpeg|jpg|png)('|")(.*?)>/i";
    $replacement = '<img$1src=$2$3.$4$5 title="'.$post->post_title.'"$6>';
    $content = preg_replace($pattern,$replacement,$content);
    return $content;
}
add_filter('the_content','lxtx_image_title',15);

 

因为没有找到判断并自动添加图片 title 属性的代码,所以就使用了强制用文章标题作为图片的 title 属性方法。如果大家有能够通过判断,不覆盖自己设置的图片 title 的方法的话,请不宁赐教!

 

 

2.另外在给出一种强制使用文章标题做为图片 Alt 和 Title 属性的方法

 

/* wordpress强制使用文章标题做为图片alt和title属性
/* https://www.ilxtx.com/how-to-add-alt-and-title-properties-to-image-automatically.html */
function lxtx_image_alt_title($content){
    global $post;
    $pattern = "/<img(.*?)src=('|")(.*?).(bmp|gif|jpeg|jpg|png)('|")(.*?)>/i";
    $replacement = '<img$1src=$2$3.$4$5 alt="'.$post->post_title.'" title="'.$post->post_title.'"$6>';
    $content = preg_replace($pattern,$replacement,$content);
    return $content;
}
add_filter('the_content','lxtx_image_alt_title',15);

 

此方法的特点是,无论图片是否设置 alt 和 title 属性,都会强制使用文章的标题作为图片的 alt 和 title 属性。

 

 

3.判断并自动添加图片 Alt 和 Title 属性(推荐)

 

/**
* WordPress判断并自动添加图片alt和title属性
*/
function lxtx_image_alt_title($imgalttitle) {
    global $post;
    $category = get_the_category();
    $flname = $category[0]->cat_name;
    $btitle = get_bloginfo();
    $imgtitle = $post->post_title;
    $imgUrl = "<imgs[^>]*src=("??)([^" >]*?)\1[^>]*>";
    if (preg_match_all("/$imgUrl/siU", $imgalttitle, $matches, PREG_SET_ORDER)) {
        if (!emptyempty($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', 'lxtx_image_alt_title');

 

以上代码的特点是:

会智能判断,如果没有 alt 或 title 属性,那么就会自动给该图片添加上 alt 和 title 属性;

 

alt 属性显示形式为“文章标题 分类名称 第几张”,title 属性显示形式为“文章标题 分类名称 第几张-站点名称”。

 

一点小缺陷:如果 img 标签中的 alt=””和 title=””时,不会添加相应的 alt 和 titl 属性,上述 3 种方法,大家取舍着用!(以上转自:https://wpspy.org/1085.html)

 

三、插件实现

 

你可能需要安装这款 Image Automatic Alt Text and Caption 插件来帮你完成这些工作。

 

插件如何使用

 

1、下载插件上传安装,或者直接在后台搜索Image Automatic Alt Text and Caption安装。

 

2、启用插件即可,上传图片会自动给你图片添加ALT、标题和描述内容。如下图:

 

图片自动添加ALT

 

当然,这个图片ALT是根据你图片名字添加的,所以如果你图片完全都是无意义的名字,用这个插件添加也没实际SEO意义,还是手动点吧。

 

插件下载

 

您可以使用下面的下载按钮下载这个免费的WordPress插件。也可以直接从后台搜索安装。

下载地址

    版权声明:

     本网站的所有文字、图片资料,未标注转字的均由作者亲自整理创作,如需复制、转载、转贴等方式发布/发表,请以锚链接的方式显示原文出处,请尊重我的劳动成果,侵权必究。本网站转载的文章如有侵权的地方请及时联系本人,核对后会第一时间删除!

阿沐
1625139774@qq.com