2013-07-03 66 views
0

在WordPress的,你如何篩選一個textarea保存在主題管理中的Vimeo嵌入代碼?使用sanitize_text_field將使代碼在通過update_post_meta保存到db時不可用。WordPress的 - 過濾器視頻嵌入代碼

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

不知道它是否適合您的應用程序,但有一個名爲'[iframe]'的好插件允許在WYSIWYG頁面/帖子編輯器中嵌入視頻代碼:http://wordpress.org/plugins/iframe/ –

回答

0

我經常接近從另一個角度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;?> 
+0

yes但是在這種情況下,我需要添加幾個額外的選項 - 比如vimeo或者youtube /高度,寬度等等。我一直在尋找一種方法來驗證這篇文章。 – Crerem

+0

你可以使用像http://www.php.net/manual/en/function.html-entity-decode.php - 對不起,我知道我的答案不理想,只是試圖幫助。此外,我會推薦這樣的問題的wordpress.stackexchange – Djave

0

我建議你保存視頻的URL在文本輸入(繼續使用sanitize_text_field())的然後使用WordPress的wp_get_oembed()函數輸出嵌入代碼。這將適用於各種允許的提供商,如Youtube和Vimeo。只要您使用允許的提供程序,此方法就更安全,我相信您可能會在白名單中添加提供程序,因此您很可能無法使用某個人。

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

此外,還可以列入白名單iframe和消毒如圖我的回答here使用wp_kses() textarea的。