开机自检中未显示iFrame(启用了“Allow php in post”插件)

时间:2012-12-23 作者:damondicenzo

$width = 560;
$height = 315;
$code = "I8M_uCnxhwY";

$homepage = "/";
$currentpage = $_SERVER[\'REQUEST_URI\'];
if($homepage!=$currentpage) {
echo \'<iframe width=".$width." height=".$height." src="http://www.youtube.com/embed/\'.$code.\'" frameborder="0" allowfullscreen></iframe>\';
}  
这就是我目前的代码。我正在尝试在PHP脚本中的iframe中显示YouTube嵌入视频,该脚本仅在所述iframe不在主页上时显示。(即是一篇博客文章)

如果有人能帮助我,那就太好了。

它似乎承认应该存在一些东西,但没有显示出来。我没有收到任何错误。

谢谢

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

我想说这是插件的一个怪癖。在这种情况下,最好shortcode.

将此代码添加到函数中。php文件:

function wpse_77036_embed_video( $atts ) {
    extract( shortcode_atts( array(
        \'homepage\' => \'/\',
        \'currentpage\' => $_SERVER[\'REQUEST_URI\'],
        \'width\' => 560,
        \'height\' => 315,
        \'code\' => \'I8M_uCnxhwY\',
    ), $atts ) );

    if ( $homepage != $currentpage ) {
        return sprintf(
            \'<iframe width="%s" height="%s" src="http://www.youtube.com/embed/%s" frameborder="0" allowfullscreen></iframe>\',
            $width,
            $height,
            $code
        );
    }  
}
add_shortcode( \'embed-video\', \'wpse_77036_embed_video\' );
然后,您可以在帖子中使用此选项,如:

[embed-video width="560" height="315" code="I8M_uCnxhwY"]
如果未提供宽度、高度或代码,则将使用函数中定义的默认值。您还可以通过传递宽度和高度的相同方式将自定义主页或当前页面传递给快捷码。如果您需要更多帮助,请在下面发表评论。

SO网友:bueltge

如果您对iframe有更多的要求,而不是针对YouTube视频,那么您是否也可以允许在TinyMCE中使用iframe。请参阅旧问题中的答案。

Make WordPress WYSIWYG not strip out iframe's

但为了便于使用,视频的短代码是一个很好的解决方案。

结束