我使用this plugin作为起点来创建自定义元框,允许用户选择精选视频。元框工作得很好,现在我想弄清楚如何在帖子中显示视频。以下代码显示视频:
<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');
}
?>
答案 0 :(得分:0)
你几乎得到了它!
如果没有精选视频,您将获得一个空字符串(“”)。 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');
}
答案 1 :(得分: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');
}
?>