在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专家,并从旧网站窃取了这些代码,所以我可能已经做了一些非常容易修复的东西而且没有发现它。提前感谢您的帮助。
答案 0 :(得分:1)
您收到错误是因为没有匹配项,因此$matches[1]
不存在。
为了保持代码流的相同,请将行更改为:
if(isset($matches[1])) {
我应该提一下,isset()
检查是否定义了一个变量。在这种情况下,我们检查以确保定义$matches[1]
。它正在完成与现有行相同的任务而不会抛出错误,因为isset()
不受未定义错误的影响,因为它的功能性质。