【问题标题】:PHP error on WordPress site for YouTube embed用于 YouTube 嵌入的 WordPress 网站上的 PHP 错误
【发布时间】:2012-12-24 02:20:32
【问题描述】:

在 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 专家,并且从旧网站窃取了这段代码,所以我可能做了一些超级容易修复的事情,只是没有发现它。提前感谢您的帮助。

【问题讨论】:

  • 你得到的错误是什么,在哪一行?

标签: php wordpress youtube embed


【解决方案1】:

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

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

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

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

【讨论】:

  • 谢谢老兄,抱歉这么晚才回复你,但这让我很好!
猜你喜欢
  • 2021-03-25
  • 1970-01-01
  • 2015-10-16
  • 2011-12-04
  • 2016-03-20
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多