Word中的PHP函数不显示嵌入的YouTube视频

The php code is working and is displaying contact forms and galleries, however, the youtube video links are not embeding like they would in a normal Wordpress page. It just displays the address in the popup window. This was working when using html code on the page, but does not work once inside a PHP function. Here's the code if anyone can help with it. Thanks.

function artistArea($atts, $content = null) {
   extract(shortcode_atts(array('number' => '#', 'photo' => '#', 'name' => '#', 'video' => '#', 'audio' => '#', 'gallery' => '#', 'bio' => '#', 'element1' => '#','element2' => '#','element3' => '#','element4' => '#'), $atts));  

    switch ($number) {
        case '1' :
            $element1 = '1';
            $element2 = '2';
            $element3 = '3';
            $element4 = '4';
            break;
        case '2' :
            $element1 = '5';
            $element2 = '6';
            $element3 = '7';
            $element4 = '8';
            break;
        case '3' :
            $element1 = '9';
            $element2 = '10';
            $element3 = '11';
            $element4 = '12';
            break;
        case '4' :
            $element1 = '13';
            $element2 = '14';
            $element3 = '15';
            $element4 = '16';
            break;
        case '5' :
            $element1 = '17';
            $element2 = '18';
            $element3 = '19';
            $element4 = '20';
            break;
        default :
            $element1 = '1';
            $element2 = '2';
            $element3 = '3';
            $element4 = '2';
            break;
        break;
    }

        switch ($type) {
        case 'lounge' :
            $formType = '[contact-form-7 id="4" title="Lounge Artists"]';
            break;
        case 'magic' :
            $formType = '[contact-form-7 id="184" title="Magic Artists"]';
            break;
        case 'tribute' :
            $formType = '[contact-form-7 id="185" title="Tribute Artists"]';
            break;
        case 'comedy' :
            $formType = '[contact-form-7 id="186" title="Comedy Artists"]';
            break;
        case 'dance' :
            $formType = '[contact-form-7 id="187" title="Dance Artists"]';
            break;
        case 'hen' :
            $formType = '[contact-form-7 id="188" title="Hens Party Artists"]';
            break;
        case 'hypnotist' :
            $formType = '[contact-form-7 id="189" title="Hypnotist Artists"]';
            break;
        case 'circus' :
            $formType = '[contact-form-7 id="190" title="Circus Artists"]';
            break;
        default :
            $formType = '[contact-form-7 id="4" title="Lounge Artists"]';
            break;
        break;
    }

        switch ($audio) {
        case '0' :
            $audioSection = ''; break;
        default :
            $audioSection = '
        <div class="artists_audio">
            <a class="lbp-inline-link-'.$element2.' cboxElement" href="#">AUDIO</a>
            <div style="display: none;"><div id="lbp-inline-href-'.$element2.'" style="padding:10px; background: #fff;">[soundcloud url="'.$audio.'" params="" width=" 100%" height="166" iframe="true" /]</div></div>
        </div>'; break;
        break;
    }

        switch ($video) {
        case '0' :
            $videoSection = ''; break;
        default :
            $videoSection = '       <div class="artists_video">
            <a class="lbp-inline-link-'.$element1.' cboxElement" href="#">VIDEO</a>
            <div style="display: none;"><div id="lbp-inline-href-'.$element1.'" style="padding:10px; background: #fff;">
            '.$video.'
            </div></div>
        </div>'; break;
        break;
    }

        switch ($gallery) {
        case '0' :
            $gallerySection = ''; break;
        default :
            $gallerySection = '                 <div class="artists_pictures">
            <a class="lbp-inline-link-'.$element3.' cboxElement" href="#">PICTURES</a>
            <div style="display: none;"><div id="lbp-inline-href-'.$element3.'" style="padding:10px; background: #fff;">[nggallery id='.$gallery.']</div></div>
        </div>'; break;
        break;
    }   


    $output = '<div class="artist_enclosure">
    <div class="artists_photo">
        <img src="'.$photo.'" alt="'.$name.'" width="150" height="150" class="alignnone size-thumbnail wp-image-39" />
    </div>
    <div class="artists_name"> 
        '.$name.'
    </div>
    <div class="artists_bio">
        '.$content.'
    </div>

    <div class="artists_media">

        '.$videoSection.'

        '.$audioSection.'

        '.$gallerySection.'

        <div class="artists_booknow">
            <a class="lbp-inline-link-'.$element4.' cboxElement" href="#">BOOK NOW!</a>
            <div style="display: none;"><div id="lbp-inline-href-'.$element4.'" style="padding:10px; background: #fff;">'.$formType.'</div></div>
        </div>
    </div>
</div>

        ';
return do_shortcode($output);
}
add_shortcode('artist', 'artistArea');

do_shortcode doesn't look for oEmbeds. You'll have to call the oEmbed code directly, but there's some setup that needs to be done first before the oEmbed code will look at your content.

Instead of this…

return do_shortcode($output);

…you'll need to do something like this:

// Use the WP_Embed instance WordPress already set up
global $wp_embed;

/**
 * Replace the global $post with a fake ID (a really crazy one!)
 * or else WP_Embed::autoembed() will skip the oEmbed check
 * for some reason.
 **/
global $post;
$oldpost = $post;
$post = new stdClass();
$post->ID = PHP_INT_MAX;

// Process oEmbeds
$output = $wp_embed->autoembed( do_shortcode( $output ) );

// Restore the original $post
$post = $oldpost;

return $output;