获取短代码之间的内容

时间:2015-03-03 06:19:43

标签: php wordpress

我需要在wordpress短代码之间获取内容。

喜欢说[bla_blabla name="a"]Variation A[/bla_blabla]

应该返回Variation A

我想过使用正则表达式来获取它,但是wordpress中有一个shortcodes.php文件应该已经能够做到了吗?你能指导我做正确的做法吗?

我目前使用此代码

<?php
function abtest_runner($input) {
    //A bit confused if you wanted equal chances of selecting one or equal changes?
    //This is for equal chances.
    $size = count($input);
    $select = rand(0,$size-1);
    $temp=array();
    $selection = $input[$select];
    $temp = (explode("]",$selection));
    $temp = (explode("[",$temp[1]));
    echo $temp[0];

}

$input[0] = '[bla_blabla name="a"]Variation A[/bla_blabla]';
$input[1] = '[bla_blabla name="b"]Variation B [/bla_blabla]';

abtest_runner($input);
?>

1 个答案:

答案 0 :(得分:2)

如果您使用[add_shortcode][1]功能在WordPress中注册了短代码,则可以使用以下方法提取短代码内容:

$pattern = get_shortcode_regex();
$content  = '[bla_blabla name="a"]Variation A[/bla_blabla]';
$matches = array();
preg_match("/$pattern/s", $content, $matches); 
print_r($matches[5]);

$matches[5]将包含您的内容。

希望这有帮助。