方法一
此方法是根据文章中的 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);