WordPress 自动为文章中的图片添加 alt 和title

  • 2025-01-14
  • 阅读:17

方法一

此方法是根据文章中的 img 标签是否存在 alt值 和 title值 来判断,然后把文章标题添加到图片的 alt值 和 title值,无论图片格式是什么。

//自动将文章标题和网站名添加到alt和title
function img_alt($content) {
	global $post;
	preg_match_all('/<img (.*?)\/>/', $content, $images);
	if(!is_null($images)) {
		foreach($images[1] as $index => $value) {
			$new_img = str_replace('<img', '<img alt="'.get_the_title().'-'.get_bloginfo('name').'" title="'.get_the_title().'-'.get_bloginfo('name').'"', $images[0][$index]);
			$content = str_replace($images[0][$index], $new_img, $content);
		}
	}
	return $content;
}
add_filter('the_content', 'img_alt', 99999);

如果你不希望在图图片 alt 和 title 中添加网站名称可以用下面的代码:

//自动将文章标题添加到alt和title
function img_alt($content) {
    global $post;
    preg_match_all('/<img (.*?)\/>/', $content, $images);
    if (!is_null($images)) {
        foreach ($images[1] as $index => $value) {
            $new_img = str_replace('<img', '<img alt="' . get_the_title() . '" title="' . get_the_title() . '"', $images[0][$index]);
            $content = str_replace($images[0][$index], $new_img, $content);
        }
    }
    return $content;
}
add_filter('the_content', 'img_alt', 99999);

方法二

此方法是覆盖文章中的 img 标签 alt值 和 title值,然后把文章标题覆盖到图片的 alt值 和 title值,图片格式支持(webp|bmp|gif|jpeg|jpg|png),可以自行添加其他图片格式。

//自动将文章标题添加到alt和title
function lxtx_image_alt_title($content) {
	global $post;
	$pattern = "/<img(.*?)src=('|\")(.*?).(webp|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);

部分评论