How to add automatic class in image for wordpress post
css, twitter-bootstrap-3, wordpress, wordpress-theming
Solution
since you need to have it for all of your post images, then you need to add a hook for the content and add
function add_responsive_class($content){
$content = mb_convert_encoding($content, 'HTML-ENTITIES', "UTF-8");
$document = new DOMDocument();
libxml_use_internal_errors(true);
$document->loadHTML(utf8_decode($content));
$imgs = $document->getElementsByTagName('img');
foreach ($imgs as $img) {
$img->setAttribute('class','img-responsive');
}
$html = $document->saveHTML();
return $html;
}
now add the hook to the content
add_filter ('the_content', 'add_responsive_class');
However, if you already have classes for the img and you need to add a new class then you can refer to PHP equivalent to jQuery addClass. Or, you can simply do this:
$existing_class = $img->getAttribute('class');
$img->setAttribute('class', "img-responsive $existing_class");
The code above works .. i use it to remove src and data-src for image lazy loading. Hope it works for you
Problem
I want to make a responsive theme with Bootstrap 3. However, I need to automatically add the CSS class `.img-responsive` to every post image because I need the images to be responsive. Please suggest me what I need to add in WordPress's `functions.php` file or any other file that will allow me to add the CSS class automatically.