2013-07-03 2 views
0

В Wordpress, как вы фильтруете текстовое поле, которое сохраняет код встраивания vimeo в тему admin? Использование sanitize_text_field сделает код непригодным при сохранении в db через update_post_meta.Wordpress - фильтр встраивать код

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

Не уверен, что он подходит для вашего приложения, но есть большой плагин под названием '[iframe]', который позволяет вставлять код видео в редактор WYSIWYG/Post Editor: 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> 

Я бы их просто вставить идентификатор, в этом случае 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

да, но в этом случае мне нужно добавить несколько дополнительных опций - это vimeo или youtube/height, width и т. д. Я искал способ проверить этот пост за один ход. – Crerem

+0

Вы можете использовать что-то вроде http://www.php.net/manual/en/function.html-entity-decode.php - Извините, я знаю, что мои ответы не идеальны, просто пытаются помочь. Кроме того, я бы рекомендовал wordpress.stackexchange для таких вопросов, как эти – Djave

0

Я хотел бы предложить, что вы сохраните URL видео-ролика в поле ввода текста (продолжить использование sanitize_text_field()) апа d затем выведите код для встраивания, используя функцию WordPress wp_get_oembed(). Это будет работать с множеством разрешенных поставщиков, таких как Youtube и Vimeo. Этот метод безопаснее, если вы используете разрешенных поставщиков, и я считаю, что можно добавить поставщиков в белый список, если вы используете кого-то довольно неясный.

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

Кроме того, вы можете в белый список iframe и дезинфицировать, используя текстовое поле wp_kses(), как показано в моем ответе here.

Смежные вопросы