WordPress allows users to easily embed video links directly onto a post in 2 ways:

  1. Using Video Shortcode
  2. Just paste plain video links if you are enabling Jetpack plugin

But what happens if you are collecting a video link from a custom field and then trying to show the video on a post?

Don’t worry, this can be done via the wp_oembed_get() function. (Codex: wp_oembed_get)

Here’s the full function we’ll be using for this purpose. Just put it in your functions.php.

 * Embed video with URL retrieved from custom fields
 * URL: http://clonetemplates.com/codex/embed-video-url-retrieved-custom-fields.html/
function ct_video_url_custom_field($field) {
    global $post;
    if(empty($field)) $field='_ct_video_url';
    $supported = wp_get_video_extensions();
    $video_url = get_post_meta($post->ID, $field, true);
    $video_pathinfo = pathinfo($video_url);
    $video_ext = $video_pathinfo['extension'];
        if ( in_array($video_ext, $supported) ) {
        } else {
            $video = wp_oembed_get($video_url);
            echo $video;

Line 5: To get the url from custom field, we’ll use the get_post_meta() function. $field is the key of the custom field.
So if the $video_url has one of the standard extensions that is supported by wp, it will do the video src shortcode. If not, it will try to oembed the url.
Put following code to where you want to show the video. This functions must be used in the loop.

<?php ct_video_url_custom_field('field_key');?>

Remember to replace field_key with your actual custom field key

  • http://wordpress.org/support/topic/how-to-embed-audio-video-with-url-retrieved-from-custom-fields
  • http://www.limecanvas.com/passing-parameters-to-a-video-link-in-a-wordpress-custom-field/