内容中MP3 URL周围的音频标签

时间:2013-01-20 作者:Josh Rodgers

我有一个音频播放器,它使用以下语法显示播放器:

[audio src="http://somedomain.com/wp-content/uploads/2013/01/songtitle.mp3"]

问题是,我很确定我可以向用户展示如何复制url并将其粘贴到帖子中,但我如何在内容中搜索.mp3 链接然后放置[audio src=" 在它前面"] 最后呢?

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

滤器the_content ond/或the_excerpt 并替换已经不是属性值的音频URL。

示例:

add_filter( \'the_content\', \'wpse_82336_audio_url_to_shortcode\', 1 );
add_filter( \'the_excerpt\', \'wpse_82336_audio_url_to_shortcode\', 1 );

function wpse_82336_audio_url_to_shortcode( $content )
{
    # See http://en.wikipedia.org/wiki/Audio_file_format
    # Adjust the list to your needs
    $suffixes = array (
        \'3gp\', \'aa3\', \'aac\', \'aiff\', \'ape\', \'at3\', \'au\',  \'flac\', \'m4a\', \'m4b\',
        \'m4p\', \'m4r\', \'m4v\', \'mpc\',  \'mp3\', \'mp4\', \'mpp\', \'oga\',  \'ogg\', \'oma\',
        \'pcm\', \'tta\', \'wav\', \'wma\',  \'wv\',
    );

    $formats = join( \'|\', $suffixes );
    $regex   = \'~
    (([^"\\\'])|^)            # start of string or attribute delimiter -> match 1
    (https?                 # http or https
        ://                 # separator
        .+/                 # domain plus /
        .+                  # file name at least one character
        \\.                  # a dot
        (\' . $formats . \')  # file suffixes
    )                       # complete URL -> match 3
    (([^"\\\'])|$)?           # end of string or attribute delimiter -> match 5
    ~imUx\';                 # case insensitive, multi-line, ungreedy, commented

    return preg_replace( $regex, \'\\1[audio src="\\3"]\\5\', $content );
}

结束

相关推荐

被黑客攻击后致命错误:在第1行调用404.php中未定义的函数GET_HEADER()

吃了timthumb之后。利用php。该站点已升级为WP 3.5它再次遭到破坏,(wp config包括加密数据以及wp include目录中的functions.php。在查看了各种网站后,我选择删除所有文件(备份网站后)并重新安装代码,以确保没有损坏的文件,并删除各种主题/插件/和WordPress更新版本中仍然存在的任何不需要的文件。主页会加载,但超出主页的所有链接都不可用,因此会出现此错误致命错误:调用中未定义的函数get\\u header()。。。404.php,第1行。标题和404 php文