Как отобразить видео из WordPress Custom Meta Box?

я использовал этот плагин в качестве отправной точки для создания настраиваемого мета-поля, которое позволяет пользователям выбирать избранные видео. Мета-блок работает отлично, и теперь я пытаюсь понять, как отобразить видео в посте. Следующий код отображает видео:

<video controls="controls" preload="auto" width="100%" height="100%">
<source src="<?php
// Retrieves the stored value from the database
$meta_value = get_post_meta( get_the_ID(), 'meta-image', true );
// Checks and displays the retrieved value
if( !empty( $meta_value ) ) {
echo $meta_value;
} ?>" type="video/mp4" />
</video>

Замечательно. Но я хочу написать утверждение, которое гласит: «Если в записи есть избранные видео, покажите их, если не отобразите избранные миниатюры». Кто-нибудь знает, как это сделать?

РЕДАКТИРОВАТЬ: Я все ближе. Следующий код почти работает, но для постов, которые имеют изображения (не видео), вместо показанного изображения отображается пустой видеоплеер. Как я могу изменить приведенный ниже код так, чтобы показанные изображения работали?

<?php

$slam_featured_video = get_post_meta( get_the_ID(), 'meta-image', true );

if (isset($meta_value))  {
echo '<video controls="controls" preload="auto" width="100%" height="100%">
<source src="'. $slam_featured_video. '" type="video/mp4" />
</video>';
} elseif (empty($meta_value)) {
echo the_post_thumbnail('full');
}

?>

2

Решение

Вы почти получили это!

если нет показанного видео, вы получите пустую строку («»). isset («») = true, поэтому вы все равно окажетесь в избранном видеоблоке.

Просто пустая строка сама по себе будет иметь значение false, поэтому просто сделайте:

if ($meta_value)  {
echo '<video controls="controls" preload="auto" width="100%" height="100%">
<source src="'. $slam_featured_video. '" type="video/mp4" />
</video>';
} elseif (empty($meta_value)) {
echo the_post_thumbnail('full');
}
0

Другие решения

После дополнительных исследований и экспериментов мне удалось найти решение. Следующий код работает для меня. Спасибо @manishie за то, что поставили меня на правильный путь.

<?php

$slam_featured_video = get_post_meta( get_the_ID(), 'meta-image', true );

if (!empty($slam_featured_video))  {
echo '<video controls="controls" preload="auto" width="100%" height="100%">
<source src="'. $slam_featured_video. '" type="video/mp4" />
</video>';
} elseif (empty($slam_featured_video)) {
echo the_post_thumbnail('full');
}

?>
0

По вопросам рекламы [email protected]