WordPress不添加frameborder属性。YouTube做到了。这是他们嵌入代码的一部分。
如果您必须将其移除,可以使用embed_oembed_html
用于修改返回HTML的筛选器:
function wpse_308247_remove_frameborder( $html, $url ) {
// If the URL to be embedded is from YouTube.
if ( strpos( $url, \'youtube.com\' ) !== false ) {
// Replace the frameborder attribute with an empty string.
$html = str_replace( \'frameborder="0"\', \'\', $html );
}
return $html;
}
add_filter( \'embed_oembed_html\', \'wpse_308247_remove_frameborder\', 10, 2 );
但问题是:您没有得到任何避免验证器错误的特殊信息。重要的是了解错误及其可能导致的问题,而不是试图在没有上下文的情况下删除每个警告或错误。
考虑到这一点frameborder
属性很可能是Google为了向后兼容旧版本的HTML而添加的,它不会因为存在而产生任何负面影响。我认为不值得为移除它付出努力。
这个allow
属性是另一种情况。它似乎是为了支持Chrome的特定功能。因此,虽然它是无效的HTML,但它仍然有其用途。它类似于frameborder
属性,但离开它不会导致任何问题。