0

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の専門家ではなく、古いサイトからこのコードを盗んだので、おそらく修正が非常に簡単で、それを見つけられないことをしました。助けてくれてありがとう。

4

1 に答える 1

1

一致がなかったため存在しないため、エラーが発生$matches[1]しています。

コードの流れを同じにするには、行を次のように変更します。

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

言及する必要があるisset()のは、変数が定義されているかどうかを確認することです。$matches[1]この場合、が定義されていることを確認します。isset()機能の性質上、未定義のエラーの影響を受けないため、エラーをスローすることなく既存の行と同じタスクを実行しています。

于 2013-01-09T19:56:50.833 に答える