【发布时间】:2019-09-12 20:37:43
【问题描述】:
我正在尝试编写一个函数,该函数将使用带有 Wordpress 音频短代码的 .mp3 URL 覆盖任何 <a> 标记。
我正在从 api 将帖子拉入 Wordpress——因此我无法手动将音频短代码添加到每个帖子中的 mp3 链接——甚至无法将 mp3 URL 放在单独的行中,这会自动生成短代码。这些帖子是广播故事。每个都以<a> 标记开头,其结构完全如下:
<a href="https:storyurl.mp3" class="asset-audio">Hear the radio version of this story.</a>
我相信这就是我需要将该标签转换为:
[audio mp3="https:storyurl.mp3" class="asset-audio" title="Hear the radio version of this story."]
有些音频播放器插件可以识别任何 mp3 并将其包装在自己的短代码中,但默认情况下,Wordpress 不会通过其核心 mediaelement.js 执行此操作。我希望在我的子主题的functions.php中实现这一点。
【问题讨论】:
-
我认为您最好的选择是查看帖子内容(可能连接到
the_content过滤器),并使用正则表达式来查找信息。你熟悉preg_match_all()和preg_replace()吗? -
我不熟悉,只是用谷歌搜索了一下。这确实有道理。基本上,查找和替换。我没有想过要这样攻击它。我假设有某种方法可以在部分标准中使用某种“通配符”来编写
preg_match_all逻辑。匹配条件必须包括.mp3,但不能包括 URL 的其余部分。无论如何,我会摆弄那个。谢谢!