Simple function - just place it in your theme's functions.php file, save, and you're good to go. If an image in your content is missing the alt tag, it adds that posts title as the alt tag for the image.
It's been recommended to me that I shouldn't be using regex to parse HTML, and I made an attempt to do this with DOMDocument, but it wasn't working out to well. If there are any DOMDocument ninjas around, maybe they could slice this up a little easier.
Update: removed the "(.*?)" from the '/alt=/' regex, just in case an image had an alt already defined, but using single quotes instead.
- function add_alt_tags($content)
- global $post;
- preg_match_all('/<img (.*?)\/>/', $content, $images);
- foreach($images as $index => $value)
- if(!preg_match('/alt=/', $value))
- $new_img = str_replace('<img', '<img alt="'.get_the_title().'"', $images[$index]);
- $content = str_replace($images[$index], $new_img, $content);
- return $content;
- add_filter('the_content', 'add_alt_tags', 99999);
You need to login to post a comment.