How to add automatic class in image for wordpress post

后端 未结 12 1507
时光说笑
时光说笑 2020-12-02 13:53

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 i

12条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-02 14:14

    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

提交回复
热议问题