没有属性但有值的快捷码

时间:2018-06-26 作者:Pegues

我几乎完成了客户网站的重新设计和开发,我需要建立支持的最后一项是他们使用的音频短码。我遇到的问题是音频快捷码没有使用属性,但有一个属性值:

[audio=http://1234.domain.com/wp-content/uploads/audiofile.mp3]
如何在页面上呈现此内容?

我将使用以下函数,但上面的快捷码中没有属性:

function audio_shortcode($atts) {
    $a = shortcode_atts( array(
        \'uri\' => \'\'
    ), $atts);

    return \'<audio controls><source src="\' . $a[\'uri\'] . \'" type="audio/mpeg"></audio>\';
}
add_shortcode(\'mp3audio\', \'audio_shortcode\');
我在这里查看了文档:https://codex.wordpress.org/Shortcode_API 但这里没有任何例子[scode="value"].

对如何进行有何建议?

1 个回复
SO网友:Pegues

如果未使用任何属性,但提供了值,则会将该值添加到$atts[0]. 使用$atts[0], 我现在可以通过以下操作获得值输出:

function audio_shortcode($atts) {
    if($atts[0] != \'\') {
        return \'
            <div class="audiofile">
                <audio controls>
                    <source src="\' . $atts[0] . \'" type="audio/mpeg">
                </audio>
            </div>\';
    }
}
add_shortcode(\'audio\', \'audio_shortcode\');

结束

相关推荐

从函数获取返回的变量到ADD_SHORTCODE函数

接下来,我成功地将一个ajax对象传递到后端(JS中的脚本实际上并不重要,因为我已经很好地完成了):add_action( \'wp_ajax_my_action\', \'my_action_callback\' ); add_action( \'wp_ajax_nopriv_my_action\', \'my_action_callback\' ); add_action( \'wp_enqueue_scripts\', \'theme_name_scripts\' ); ad