Как заменить миниатюру записи в WordPress на видео?
Мне нужно заменить стандартные миниатюры записей на видео, если в записях содержится видео с YouTube, Vimeo или других видеохостингов, поддерживаемых WordPress.
Вот псевдокод, который я хочу использовать на кастомной странице:
if ( has_post_thumbnail( get_the_ID() ) {
if ( has_video(псевдокод для проверки наличия youtube видео в записи) ) {
// показать видео плеер
} else {
// показать стандартную миниатюру записи
}
}
Есть какие-то советы?

Допустим для простоты, что вы используете ACF. После установки ACF вам нужно создать поле для ссылки на видео и назначить его для записей. Затем, в записи, где должно отображаться видео, добавьте URL. Обычно я назначаю это поле как текстовое и прошу пользователей вводить только ID YouTube (последнюю строку текста после ссылки youtube.com
).
Например, если ссылка на видео такая: https://www.youtube.com/J-ek8drxFJA
пользователь должен ввести только J-ek8drxFJA
в поле.
Теперь добавьте этот код в ваш файл single.php в папке дочерней темы:
Обратите внимание, что я изменил условие if
. Нет необходимости искать миниатюру, если вы собираетесь использовать видео:
if( get_field( 'video_link' ) ) {
echo 'это ID моего видео ' . get_field( 'video_link' ); // или вывести плеер (см. ниже)
} else {
if( has_post_thumbnail( get_the_ID() ) ){
// показать миниатюру записи
}
// нет видео или изображения
}
Конечно, если вы хотите показать само видео, вам нужно сделать примерно так:
if( get_field( 'video_link' ) ) {
$videoid = get_field( 'video_link' );
echo '<h2>Ссылка на видео</h2><p>смотрите наше видео:</p><iframe width="420" height="315" src="https://www.youtube.com/embed/' . $videoid . '" frameborder="0" allowfullscreen></iframe>';
} else {
if( has_post_thumbnail( get_the_ID() ) ) {
// показать миниатюру записи
}
// нет видео или изображения
}
Очевидно, вы можете немного изменить код под свои нужды.

Хотя любые качественные ответы приемлемы, пожалуйста, учитывайте, что ответы, отсылающие пользователя к сторонним плагинам, иногда воспринимаются не очень хорошо. Подобные ответы имеют тенденцию порождать дополнительные вопросы относительно упомянутых сторонних плагинов, а такие вопросы считаются Не по Теме.

Я думаю, вам стоит попробовать этот плагин: https://wordpress.org/plugins/featured-video-plus/
Если вы не хотите использовать дополнительные плагины, то обязательно изучите их код для примера. Вы можете просмотреть их код и адаптировать его под свои требования.
