【发布时间】:2019-03-18 12:37:35
【问题描述】:
我正在为我的图像使用延迟加载,作为Google pointed out,在每个 img 下方添加一个 noscript 标签至关重要。
我想在 Wordpress 编辑器中的每张图片下方添加一个 noscript 标签,类似于:
<figure>
<img src="img.jpg">
<nocript><img src="img.jp"></noscript>
<figcaption> Caption</figcaption>
<figure>
但我不能:(
这是我在 PHP 中的函数。
add_filter('the_content', function ($content) {
$dom = new DOMDocument();
$dom->loadHTML($post->post_content);
foreach($dom->getElementsByTagName( 'img' ) as $img) {
if ( $img->hasAttribute( 'src' )) {
$src_attr = $img->getAttribute( 'src' );
$noscript = $dom->createElement( 'noscript' );
$noscript_node = $img->parentNode->insertBefore( $noscript, $img );
$noscript_img = $dom->createElement( 'IMG' );
$new_img = $noscript_node->appendChild( $noscript_img );
$new_img->setAttribute( 'src', $src_attr );
$content = $dom->saveHTML();
}
};
return $content;
});
请帮忙:D
【问题讨论】:
-
$content 返回什么?
-
它应该返回 noscript 标签,但 DOM 上没有返回任何内容
-
我明白了,我现在问, $content 包含什么?你 var_dump 了吗?
-
谢谢,我不知道var_dump(JS开发者)整个帖子被退回了
-
你让我想...我正在尝试使用 JS 自己编写类似版本的代码,你有没有 JS 中并行案例的简单示例?
标签: php wordpress lazy-loading noscript