如何从Wordpress自定义元框显示视频?

时间:2014-09-25 20:44:21

标签: php wordpress video wordpress-plugin meta-boxes

我使用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');
}

?>

2 个答案:

答案 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');
}

?>