Posted By

RainyDayMedia on 09/22/11


wordpress wp wordpress-hacks

Versions (?)

Who likes this?

1 person have marked this snippet as a favorite


Add Missing Alt tags to Images - WordPress Content Filter

 / Published in: PHP


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.

  1. function add_alt_tags($content)
  2. {
  3. global $post;
  4. preg_match_all('/<img (.*?)\/>/', $content, $images);
  5. if(!is_null($images))
  6. {
  7. foreach($images[1] as $index => $value)
  8. {
  9. if(!preg_match('/alt=/', $value))
  10. {
  11. $new_img = str_replace('<img', '<img alt="'.get_the_title().'"', $images[0][$index]);
  12. $content = str_replace($images[0][$index], $new_img, $content);
  13. }
  14. }
  15. }
  16. return $content;
  17. }
  18. add_filter('the_content', 'add_alt_tags', 99999);

Report this snippet  

You need to login to post a comment.