я использовал этот плагин в качестве отправной точки для создания настраиваемого мета-поля, которое позволяет пользователям выбирать избранные видео. Мета-блок работает отлично, и теперь я пытаюсь понять, как отобразить видео в посте. Следующий код отображает видео:
<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');
}
?>
Вы почти получили это!
если нет показанного видео, вы получите пустую строку («»). 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');
}
После дополнительных исследований и экспериментов мне удалось найти решение. Следующий код работает для меня. Спасибо @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');
}
?>