我的wordpress简码无法正常工作,并输出“未知”

时间:2018-09-18 17:27:59

标签: php wordpress

我正在尝试从模板中使用的内容创建简码,但由于某些原因,它会以src输出形式返回unknown。 这是我要使用的简码:

function video( $atts, $content = null ) {

    $link1      = get_post_meta( $post->ID , 'vid' , true );
    $search     = '#(.*?)(?:href="https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch?.*?v=))([\w\-]{10,12}).*#x';
    $replace    = 'http://www.youtube.com/embed/$2';
    $link2        = preg_replace($search,$replace,$link1);
    $link3        = '<iframe width="560" height="315" src="'.$link2.'" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>';
    $link4        = preg_match('~iframe.*src="([^"]*)"~', $link3, $result);
    $link5        = $result[1];         
    $output .= '<div id="videox" style="z-index:102">';
    $output .= '<div class="video" style="margin-top: 0px; z-index:102; margin-bottom: 0px;">';
    $output .= '<iframe width="560" height="315" src="';
    $output .= $link5;
    $output .= '" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>';
    $output .= '</div>';
    $output .= '</div>';
    return $output;
        }

add_shortcode( 'video', 'video' );

结果:“ src输出为空”

更新:

$link1      = get_post_meta( $post->ID , 'vid' , true );

可以

$link1      = '<iframe width="560" height="315" src="https://www.youtube.com/embed/videoid" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>';

$link1      = 'https://www.youtube.com/watch?v=videoid';

因此,我不得不再次制作iframe。

1 个答案:

答案 0 :(得分:0)

我解决了。

$url1       = get_post_meta(get_the_id(), 'video_play', true);