快捷码未按预期显示视频

时间:2012-03-06 作者:Joshua

我已经编写了一个简短的代码来显示来自亚马逊的视频,它可以正常工作。但是,它没有按预期放置在页面上。我在<!--more--> 但是视频显示在摘录之前,破坏了摘录页面的布局。

页面输入方式如下:

A few random paragraphs of content
<!--more-->
[amazon_video file="file.flv"]
短代码是这样写的

function amazon_video($atts){
    extract(
        shortcode_atts(
            array(
                \'file\' => $file
            ), 
            $atts 
        ) 
    );
    $url = get_bloginfo(\'url\');
    ?>
    <embed
        src=\'<?php echo $url; ?>/jwplayer/player.swf\'
        name=\'player\'
        width=\'640\'
        height=\'480\'
        bgcolor=\'#000000\'
        allowscriptaccess=\'always\'
        allowfullscreen=\'true\'
        flashvars=\'file=<?php echo $file; ?>
                    &streamer=rtmp://xxxxxxxxxxxxx.cloudfront.net/cfx/st
                    &provider=rtmp\'
        autoplay="false"
    />
    <?php
}

add_shortcode(\'amazon_video\',\'amazon_video\');
有问题的页面是here 如果你想看看,但你可能会遇到一些会员许可证。

从本质上讲,视频被称为最后一段视频,位于节选的下方,但显示在节选的第一段和上方。

1 个回复
最合适的回答,由SO网友:Joshua 整理而成

有点脑波,我想我会捕捉输出return 它在函数中。原来它解决了这个问题,所以最终的代码是这样的:

function amazon_video($atts){
    extract(
        shortcode_atts(
            array(
                \'file\' => $file
            ), 
            $atts 
        ) 
    );
    $url = get_bloginfo(\'url\');

    $return = "<embed
        src=\'".$url."/jwplayer/player.swf\'
        name=\'player\'
        width=\'640\'
        height=\'480\'
        bgcolor=\'#000000\'
        allowscriptaccess=\'always\'
        allowfullscreen=\'true\'
        flashvars=\'file=".$file."
                    &streamer=rtmp://xxxxxxxxxxx.cloudfront.net/cfx/st
                    &provider=rtmp\'
        autoplay=\'false\'
    />";
    return $return;
}

add_shortcode(\'amazon_video\',\'amazon_video\');

结束