从帖子中提取网址

时间:2014-03-22 10:33:04

标签: regex wordpress audio download

我在wordpress中有关于音频播客的博客文章,如

[audio mp3="http://www.andrewbusch.com/wp-content/uploads/show_6195505.mp3"][/audio]
We talk the latest with forward guidance in the Federal Reserve with Wall Street Journal reporter, Jon Hilsenrath. 

我想为上面的mp3网址制作一个下载链接。

如何从上述内容中提取网址?

我尝试了以下但是它无法正常工作

<div class="banner-text">
<h1><a href="<?php the_permalink(); ?>"><?php echo the_title(); ?></a></h1>
<?php the_content(); ?>
<?php
$content = get_the_content( $more_link_text, $stripteaser );
preg_match_all('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $content, $match);
$match = $match[0];
?>
<div class="banner-download"><a href="<?php echo $match; ?>"><span class="displace">Download</span></a></div>
</div>

任何帮助?

1 个答案:

答案 0 :(得分:0)

有趣的问题。我的直觉是尽可能多地使用WordPress内置的短代码功能来完成这项工作。 get_post_galleries函数似乎做了类似的事情。所以这样的事情似乎做你想做的事情:

<?php
// Assumes $content is already set

preg_match_all( '/' . get_shortcode_regex() . '/s', $content, $matches, PREG_SET_ORDER );

foreach ($matches as $match) {
    if ( 'audio' === $match[2] ) {
        $tags = shortcode_parse_atts( $match[3] );
        echo $tags['mp3'];
    }
}

如果有多个音频短代码,您可能需要根据处理方式对其进行优化。