用于YouTube嵌入的WordPress网站上的PHP错误

时间:2013-01-09 19:54:13

标签: php wordpress youtube embed

在WordPress中,我使用的是同样的YouTube嵌入代码,但是现在它已经返回并且未定义偏移的错误:1 - 我在代码中注意到了它也适用的行。

function embed_youtube_video($post_id) {
    $share_url = get_field('share_url');
    preg_match('/youtu\.be\/(.+)$/', $share_url, $matches);
    // the next line throws the error
    if( $matches[1]) { 
        return '<iframe width="640" height="360" src="http://www.youtube.com/embed/' . $matches[1] . '?rel=0&wmode=transparent" frameborder="0" allowfullscreen></iframe>';
    } else {
        return false;   
    }
}

现在我不是PHP专家,并从旧网站窃取了这些代码,所以我可能已经做了一些非常容易修复的东西而且没有发现它。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您收到错误是因为没有匹配项,因此$matches[1]不存在。

为了保持代码流的相同,请将行更改为:

if(isset($matches[1])) {

我应该提一下,isset()检查是否定义了一个变量。在这种情况下,我们检查以确保定义$matches[1]。它正在完成与现有行相同的任务而不会抛出错误,因为isset()不受未定义错误的影响,因为它的功能性质。