У меня есть сайт с тяжелым изображением на WordPress. Чтобы помочь с загрузкой, я использую ленивую загрузку.Создание HTML-элементов с php
Плагин lazyload требует URL-адреса img в атрибуте data-original
.
Я изменение img
элемента, используя функцию, чтобы добавить URL изображения в data-original
и заполнитель в src
:
function add_lazyload($content) {
$dom = new DOMDocument();
@$dom->loadHTML($content);
foreach ($dom->getElementsByTagName('img') as $node) {
$oldsrc = $node->getAttribute('src');
$node->setAttribute("data-original", $oldsrc);
$newsrc = ''.get_template_directory_uri().'/library/images/nothing.gif';
$node->setAttribute("src", $newsrc);
//create img tag
$element = $dom->createElement("img");
$dom->appendChild($element);
}
$newHtml = $dom->saveHtml();
return $newHtml;
}
add_filter('the_content', 'add_lazyload');
lazyloading работает, но я хотел бы добавить запасной вариант без JavaScript. Возможно ли с помощью вышеуказанной функции создать новый элемент img
, используя src
от оригинала img
?
Таким образом, новый img
элемент будет выглядеть следующим образом:
<noscript><img src="img/example.jpg" width="640" heigh="480"></noscript>
cassi.lup - Это, как я пытался сделать это, но это приводит к фатальной ошибке и страница не загружается. Также мне нужно будет использовать src исходного изображения, например: $ dom-> appendChild (''); – ttmt
Укажите сообщение об ошибке, которое вы получаете. –