【发布时间】:2015-04-16 17:38:40
【问题描述】:
我有一个用于将值输出到 URL 的短代码 ( outputURL )。该值是从短代码 ( valueURL ) 中检索的。 valueURL 输出是包含在 div 中的文本:
<div class="">textForURL</div>
我只需要 textForURL 值,不包括 div 标签。到目前为止,我只能输出 div 标签和文本,但不能输出纯文本。
这是我的简码函数:
function ouputURL(){
$content = '[valueURL id="5"]';
$clean = preg_replace("#<div.*?>.*?</div>#", "", $content);
echo do_shortcode( $clean );
}
add_shortcode('output', 'ouputURL');
我进行了研究并能够将其组合在一起,但我不确定我是否朝着正确执行它的正确方向前进。对实现我的目标的任何帮助将不胜感激。
编辑:
这是为了进一步澄清我的问题。
我正在使用一个 WordPress 插件来管理帖子中的所有嵌入视频 URL;
-
作为一项功能,该插件允许通过其管理页面添加单个视频 ID(即 vid=X23dw34),该页面在查看主要视频之前在播放列表中查看;
李> 我想使用广告轮播插件来管理多个视频 ID,并根据广告投放参数提供单个视频 ID,并通过短代码(即 [valueURL id="5"] )调用;
广告轮播插件在视频 ID 周围包裹了一个 DIV:
<div class="">X23dw34</div>
- 使用我的函数,我已经能够修改管理嵌入式视频 URL 的插件,以填充视频 ID,包括由广告轮播短代码检索到的 div 包装器。不幸的是,输出结果是:
"...video.com/embed/<div class="">X23dw34</div>..."
- 我的麻烦是解析 DIV 并仅填充视频 ID 以生成此内容:
"...video.com/embed/X23dw34..."
我不确定我对短代码和解析的有限理解是否是问题所在,或者我的最终目标是否无法通过一个简单的函数来处理。
如果您需要更多信息,请告诉我。
编辑 2:
这是整个 iframe,我删除了额外的标签以正确格式化它:
<iframe width="100%" height="459" src="http://www.youtube.com/embed/oiE5qs8opqo?rel=0&autoplay=0&showinfo=0&controls=0&cc_load_policy=0&modestbranding=1&iv_load_policy=3&wmode=transparent&version=3&autohide=1" frameborder="0" allowfullscreen="true" allownetworking="internal"></iframe>
【问题讨论】:
-
我不明白你想要实现什么:你能添加一个例子吗?
-
我添加了更多细节。希望我能够澄清我的主要问题。谢谢。
-
这非常有效。谢谢!我也可以针对其他用例对其进行一些修改。我确实遇到了一个障碍,一个用例要求为“src”解析一个 YouTube iframe,并且只检索到“?”的 url。我想出了这个:/src="([^"]+)"/ 但我觉得我错过了一些东西。提前谢谢。
-
我很高兴它成功了。你能给我一个你想解析的 iframe 标签的例子吗?我刚刚尝试了你的正则表达式,我似乎工作正常
-
这是整个 iframe,不确定格式是否存在问题:
标签: php wordpress plugins shortcode