Intereting Posts
Разметка страницы для страницы пользовательской таксономии Как изменить значение _wp_attachment_metadata в SQL? Пользовательские типы, таксономии и оптимизация запросов Ясность, необходимая для использования нескольких 403 запрещенных функций header () в начале файлов плагинов Как проверить, был ли продукт приобретен в течение последних 365 дней, прежде чем отображать что-либо перевести the_title () с помощью .po & .mo Каким образом обычные пользовательские типы WP сопоставляются с Drupal? Покажите, какие таксономии имеют пользовательские сообщения? Документы Microsoft Word на страницы WordPress с добавлением тегов абзаца Что делать в этом случае после изменения wp_query Добавление пользовательского кода на сайт WordPress отделить должность категории по подкатегории Запрос возвращает те же результаты, даже несмотря на изменение идентификатора add_rewrite_rule с нижним приоритетом не обрабатывает страницы WordPress wp ajax return 0

Почему не работает этот короткий код для 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 и ждет ответа, а это означает, что без какого-либо кэширования такой код замедляет страницу при каждой загрузке.