我在使用WordPress内容过滤器和前端编辑器自动保存时去除iframe的问题。jQuery用其他div值替换div
作为一种解决方法,我使用隐藏的自定义帖子元div的url值替换了“video-container”div和iframe,因为WordPress自动过滤这些url并创建iframe。
到目前为止,它可以工作,但每个视频容器都被第一个后置元值替换,并且必须遍历所有值,如果有的话,替换每个视频容器。
我只是在学习js,所以任何帮助将不胜感激。
实施例视频容器:(最大3)
<div class="video-container">
<iframe width="500" height="281" src="https://www.youtube.com/embed/q7ZnNPzEBU4?wmode=transparent" frameborder="0" allowfullscreen wmode="Opaque"></iframe>
</div>
实施例隐藏后的元与我需要的URL:(最大3 & ID的增量由一个)
<input type="hidden" id="embedurl_1" class="embedurl" value="https://www.youtube.com/watch?v=q7ZnNPzEBU4">
到目前为止jQuery:(可以工作,但只能从隐藏元中获得一个值)
if($('#barley_the_content').length) {
if($('.video-container').length) {
$('div[class="video-container"]').each(function (i,v) {
$(this).replaceWith($(".embedurl").val());
});
}
}
最后的工作代码:
if($('#barley_the_content').length){
if($('.video-container').length){
$('div[class="video-container"]').each(function (i,v){
if($(".embedurl:eq("+i+")").length){
$(this).replaceWith($(".embedurl:eq("+i+")").val());
} else {
$(this).replaceWith('\r\n VIDEO PLACEHOLDER \n');
}
});
}
}
这主要检查是否大麦包装(前端编辑器)和“视频容器”是存在的,如果是这样,它看起来“embedurl_ *”divs(自定义帖子元)。
如果有自定义的帖子元值,每个元素将替换相应的“视频容器”div。这可以防止WordPress自动保存时删除iframe标签。
如果找不到“embedurl_ *”divs/values,但存在“video-container”div,我们只需将其替换为“VIDEO PLACEHOLDER”即可。
对于任何不熟悉的用户/作者unfiltered_html capability的新用户,
欢迎SO简单地访问内容与特定的类。什么是'#barley_the_content'? –
它是一个前端编辑器的包装器,允许您编辑该div内的任何内容。 – user2243139