Php Wordpress-过滤视频嵌入代码

Php Wordpress-过滤视频嵌入代码,php,wordpress,Php,Wordpress,在Wordpress中,如何过滤在主题管理中保存vimeo嵌入代码的文本区域?使用sanitize_text_字段将使代码在通过update_post_meta保存到数据库时不可用 $postmeta = sanitize_text_field( $_POST['embed_video']); update_post_meta($post_id, 'embed_video',$postmeta ); 我经常从另一个角度来处理wordpress视频嵌入,例如,在模板中创建嵌入代码

在Wordpress中,如何过滤在主题管理中保存vimeo嵌入代码的文本区域?使用sanitize_text_字段将使代码在通过update_post_meta保存到数据库时不可用

    $postmeta = sanitize_text_field( $_POST['embed_video']);
    update_post_meta($post_id, 'embed_video',$postmeta );

我经常从另一个角度来处理wordpress视频嵌入,例如,在模板中创建嵌入代码,而不是让某人像这样嵌入视频:

<iframe src="http://player.vimeo.com/video/69277800?title=0&amp;byline=0&amp;portrait=0&amp;badge=0" width="577" height="325" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

我会让他们插入id,在这个例子中是69277800。然后我会把我的模板

<?php if(!empty($video_id)):?>
<iframe src="http://player.vimeo.com/video/<?php echo $video_id;?>?title=0&amp;byline=0&amp;portrait=0&amp;badge=0" width="577" height="325" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<?php endif;?>


我建议您将视频的URL保存在文本输入中(继续使用
sanitize\u text\u field()
),然后使用WordPress的函数输出嵌入代码。这将适用于各种允许的提供商,如Youtube和Vimeo。只要您使用的是允许的提供者,这种方法就更安全,我相信有可能将提供者添加到白名单中,以防您使用的是非常不知名的提供者

$input = get_post_meta( $post->ID, '_my_meta_input', true );
echo wp_oembed_get( $input );

此外,您可以将
iframe
列入白名单,并使用
wp_kses()
清理文本区域,如我的回答所示。

不确定它是否适合您的应用程序,但有一个名为
[iframe]的很棒的插件
允许视频在所见即所得页面/帖子编辑器中嵌入代码:是的,但在这种情况下,我需要添加几个额外的选项,如vimeo或youtube/高度、宽度等。。。我一直在寻找一种方法来验证这篇文章的有效性,你可以用这样的方式——对不起,我知道我的答案并不理想,只是想帮点忙。另外,我推荐wordpress.stackexchange来回答类似的问题