我有一个短代码( outputURL ),用于将值输出到URL中。该值从一个短代码( 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');
我进行了研究,并能够把它放在一起,但我不确定我是否朝着正确的方向正确地执行它。任何帮助,以实现我的目标,将不胜感激。
编辑:
这是为了进一步澄清我的问题。
<div class="">X23dw34</div>
"...video.com/embed/<div class="">X23dw34</div>..."
"...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>
发布于 2015-04-17 01:12:22
我没有完全理解,但希望这能让你走上正轨:
add_shortcode('output', 'ouputURL');
function ouputURL ( $atts ) {
if(!isset($atts['id']))
return;
$valueURL = do_shortcode("[valueURL id={$atts['id']}]");
preg_match("#<div.*?>(.*?)</div>#", $valueURL, $matches);
if(!isset($matches[1]))
return;
return $matches[1]; // the ID
}
因此,如果在post/页面的内容中放置[output id=5]
,它将检索[valueURL id=5]
的结果,查找div
标记的内容,并返回要打印在页面上的内容。
您可以修改它以返回不仅仅是ID的内容。
https://stackoverflow.com/questions/29682149
复制相似问题