douren5490
2014-09-25 20:44 阅读 48
已采纳

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

I used this plugin as a starting point to create a custom meta box that allows users to select a featured video. The meta box is working great, and now I am trying to figure out how to display the video in the post. The following code displays the video:

<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>

That's great. But I want to write a statement that says "if the post has a featured video, display it, if not display the featured thumbnail." Anyone know how to do this?

EDIT: I am getting closer. The following code almost works, but for the posts that have featured images (not videos), it displays an empty video player instead of the featured image. How can I modify the below code so that the featured images work?

<?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条回答 默认 最新

  • 已采纳
    dsf23223 dsf23223 2014-09-29 15:05

    After some more research and experimentation, I was able to find a solution. The following code works for me. Thanks to @manishie for setting me on the right track.

    <?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');
    }
    
    ?>
    
    点赞 评论 复制链接分享
  • duanjitong7226 duanjitong7226 2014-09-26 03:39

    You almost got it!

    if there is no featured video, you will get back an empty string (""). isset("") = true, so you'll still end up in the featured video block.

    Just an empty string by itself will evaluate to false, so just do:

    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');
    }
    
    点赞 评论 复制链接分享

相关推荐