0

IFTTT.com を使用して YouTube 動画を Wordpress にインポートしています。インポートしている要素の 1 つは、YouTube ビデオの URL です。この URL を、埋め込みビデオを表示するためにテーマに付属するカスタム フィールドにコピーしたいと考えています。埋め込まれたビデオを IFTTT から投稿にインポートできることはわかっていますが、テーマが作成したビデオ埋め込みカスタム フィールドを使用する場合は、テーマが提供するフォーマットを好みます。

例:

投稿にインポートされた URL は次のようになります。

http://www.youtube.com/watch?v=qCVQpcY1au4
(例は IFTTT から取得しました。動画の選択にあまり悩まされないことを願っています)

これを次のように VideoEmbedCustomField にコピーする必要があります: http://www.youtube.com/embed/qCVQpcY1au4

残念ながら、作業するコードがありません。投稿を更新するプラグインを調べていました。ヘルプやアドバイスをいただければ幸いです。

  1. IFTTT.com を使用して、YouTube から Wordpress の投稿にビデオをインポートします。これは機能します。
  2. インポート時に、投稿にインポートされた URL を認識できる機能が必要です

    example:  <a href="http://www.youtube.com/embed/qCVQpcY1au4" id="youtubelink" class="ytlink">YouTube Link</a>
    
  3. URL が存在する場合、リンクは次のように変換されます。

    http://www.youtube.com/embed/qCVQpcY1au4 
    

    カスタムフィールドに挿入します

4

1 に答える 1

2

したがって、正規表現を介してこの変換を行うには、適切な場所に関数が必要です。

public static function convertYouTube($original) {
    $pattern =  '/http:\/\/www\.youtube\.com\/watch\?v=([\w]+)/';
    $replacement = 'http://www.youtube.com/embed/${1}';
    return $embedLink = preg_replace($pattern,$replacement,$original);
}

入力のpatternどの部分をキャプチャするかを指定します。この場合は([\w]+)、(適切にエスケープされた) 一定の YouTube URL の後にたまたま来る「1 つまたは複数の英数字のシーケンスを取得する」に大まかに翻訳された句です。

preg_replaceつかんだ部分を取り、残りを置き換えることを可能にする php 関数です。適切に変換された URL が得られたので、必要なフィールドにドロップできます。

于 2013-07-19T22:09:34.370 に答える