WordPress-DOMDocument :: loadHTML():提供空字符串作为输入

时间:2018-12-17 01:26:53

标签: php wordpress function

我正在WordPress中工作,并在我的functions.php中添加了一些代码,这将阻止WordPress向图像添加默认类并添加我自己的类。除了现在我创建新帖子时,它可以给我一个错误(参见屏幕截图),该方法可以正常工作。如果我删除了代码行,则会删除错误,但是我想保留代码,因为我需要网站的功能。

即使我不理解我的代码是由什么引起的,我仍然查了这个错误,有人on another Stackoverflow建议为类似的错误添加此代码:

libxml_use_internal_errors(false);

我添加了它,但是它不起作用,因为我不完全理解它,因此我暂时将其删除,以待该问题提供帮助。感谢您的帮助!

functions.php

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-fluid');
        }

        $html = $document->saveHTML();
        return $html;
}

add_filter('the_content', 'add_responsive_class');

// disable srcset on frontend
add_filter('max_srcset_image_width', create_function('', 'return 1;'));

Screenshot of error

1 个答案:

答案 0 :(得分:0)

我通过从functions.php中删除代码解决了这一问题。我接受了用户的建议,并使用CSS样式化了图像标签,这是更好的解决方案。