web-dev-qa-db-ja.com

このYouTubeショートコードが機能しないのはなぜですか。

echo do_shortcode('https://www.youtube.com/watch?v=vZBCTc9zHtI');

単なる印刷です

https://www.youtube.com/watch?v=vZBCTc9zHtI" 

ページに出ます。

私は私がとHTMLでビデオを表示することができます知っている

<iframe src="http://www.youtube.com/embed/vZBCTc9zHtI" width="560" height="315" frameborder="0" allowfullscreen></iframe>

しかし、私はwordpressの組み込みメソッドを利用しようとしています。どうやってこれをするの?

1
Jacksonkr

私はこれがあなたが探しているものだと思います:

<?php echo wp_oembed_get('https://www.youtube.com/watch?v=vZBCTc9zHtI'); ?>

詳細は ドキュメント をチェックしてください。

5

コンテンツエリアにビデオを埋め込むだけの場合は、WordPressは oembeds を使用してこれを非常にエレガントに実行します。 URLをエディタに貼り付けて投稿を保存するだけです。埋め込みがサポートされている限り、WordPressはその魔法を働かせ、埋め込みをフォーマットします。

do_shortcode() への呼び出しは意味がありません。投稿されたとおり、あなたのコードは「このYouTubeのURL文字列を調べて、その中にあるショートコードを実行する」と言っています。

2
Dave Romsey
do_shortcode() 

ショートコードをプリントアウトするために使用されます。そしてあなたはその中にURLを書いています。これは使わない。実装しよう

wp_oembed_get( $url, $args )

これはあなたのために働くでしょう。だからあなたのコードは

wp_oembed_get('https://www.youtube.com/watch?v=vZBCTc9zHtI')

幅を指定したい場合は

wp_oembed_get('https://www.youtube.com/watch?v=vZBCTc9zHtI', array('width'=>400))
1
gsjha

コンテンツでYouTubeのURLを使用してもショートコードとは無関係であるためうまくいきません。それがdo_shortcodeを呼び出そうとしたときにうまくいかないのです。実際にはoEmbedプロトコルを呼び出すことは非常に異なることです。 。

OEmbed shorcodeがあり、あなたはおそらくdo_shortcode('[oEmbed youtube.com.....]')を行うことができますが、他の答えが指摘するように、それのための明白なAPIがあり、そしてshortcodeを使うことはそれをするのに長い方法です。

あなたが何をしようとしているのかを覚えておくべき最も重要なことは、oEmbedがYouTubeサーバーにリクエストを送信して返信を待つということです。つまり、キャッシュを行わないと、この種のコードはロードごとにページが遅くなります。

0
Mark Kaplun