Intereting Posts
Гравитация Пользовательские теги слияния динамически создавать функции обратного вызова внутри цикла for Показать все сообщения, которые используют пользовательскую таксономию Как удалить плагин Hello Dolly автоматически? Как написать один комментарий и публиковать на каждом посту с помощью базы данных или плагина? hfeed CSS class в теме Twentyeleven В какой базе данных используется страница поиска Различная форма регистрации для разных ролей Два разных условия с одним WP_Query Как продлить один плагин, который я пишу другим, я пишу, используя классы? Как стилировать ссылки в области содержимого с тегом <span> автоматически? Правило перезаписи для одной категории Как WordPress определяет, слишком ли высок поисковый запрос var? Что не так с моим использованием add_filter Пред. / След. Ссылки Разбитые на странице статической страницы страницы

Почему не работает этот короткий код для 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. Как мне это сделать?

Solutions Collecting From Web of "Почему не работает этот короткий код для youtube?"

Я думаю, что это то, что вы ищете:

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

Для получения дополнительной информации проверьте эту документацию .

Если вы просто хотите встроить видео в область содержимого, WordPress делает это довольно элегантно с oembeds . Вам просто нужно вставить URL-адрес в редактор и сохранить сообщение. Пока поддерживаются вставки, WordPress будет работать со своей магией и форматировать вставку.

Ваш вызов do_shortcode() не имеет смысла. Как указано, ваш код говорит: «Просмотрите эту строку URL-адреса youtube и запустите короткие коды, найденные внутри нее».

 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)) 

Он не работает, потому что использование URL-адреса youtube в контенте не имеет ничего общего с короткими кодами, поэтому он не работает, когда вы пытаетесь вызвать do_shortcode , то, что он на самом деле делает, – это вызывать протокол oEmbed, который является совсем другой вещью ,

Существует oEmbed shorcode, и вы, вероятно, можете сделать do_shortcode('[oEmbed youtube.com.....]') но, как указывали другие ответы, для этого существует явный API, а использование короткого кода – это длинный путь что.

Самое важное, что нужно помнить в том, что вы пытаетесь сделать, это то, что oEmbed отправляет запрос на серверы youtube и ждет ответа, а это означает, что без какого-либо кэширования такой код замедляет страницу при каждой загрузке.