无法获取使用自定义快捷代码的默认值

时间:2011-08-29 作者:Dan G.

我正在创建一个短代码来嵌入本地托管的Quicktime电影,但我似乎无法保留默认属性。这就是我正在研究的,有人能发现任何明显的错误吗?结果没有给出任何未指定属性的值(在本例中为高度/宽度),而不是所需的默认值480和320。如有规定,则按预期工作。

<?php
function quicktime_embedder( $atts, $content = null ) {
    extract( shortcode_atts( array(
        \'url\' => \'#\',
        \'width\' => \'480\',
        \'height\' => \'320\'
    ), $atts ) );

    return \'<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
                codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="300" width="500">
                <param name="src" value="http://www.yoursite.com/video/video1.mov">
                <param name="autoplay" value="false">
                <param name="controller" value="true">
                <param name="type" value="video/quicktime" height="\'.$atts[height].\'" width="\'.$atts[width].\'">
                <embed src="\'.$atts[url].\'"
                     height="\'.$atts[height].\'" width="\'.$atts[width].\'" autoplay="false" type="video/quicktime"
                 pluginspage="http://www.apple.com/quicktime/download/">
            </object>\';
}

add_shortcode( \'quicktime\', \'quicktime_embedder\' );

?>

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

extract 获取和关联数组,并将其分解为反映数组键名称的变量。$atts[\'height\'] 只会是$height, 换句话说。

代码的相关两行将变成:

<param name="type" value="video/quicktime" height="\'.$height.\'" width="\'.$width.\'">
<embed src="\'.$url.\'" height="\'.$height.\'" width="\'.$width.\'" autoplay="false" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/">
如果仍要使用索引,请确保用引号括住阵列键:$atts[\'height\'] 不是$atts[高度]。代替extract:

$atts = shortcode_atts( array(
        \'url\' => \'#\',
        \'width\' => \'480\',
        \'height\' => \'320\'
    ), $atts )

结束

相关推荐

add_filter to youtube embeds?

嘿,伙计们,当在后端(帖子或页面)发布youtube视频链接时,wordpress会自动为我创建嵌入代码。是否可以添加过滤器?我想将所有嵌入视频的宽度和高度更改为100%?e、 g。<object width=\"100%\" height=\"100%\"> <param name=\"movie\" value=\"http://www.youtube.com/v/rBa5qp9sUOY?version=3\"> <param name=\"allowFu