获取短代码之间的内容


Get content between shortcodes

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

比如说[bla_blabla name="a"]Variation A[/bla_blabla]

应返回Variation A

我想用regex来获取它,但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);
?>

如果您已经使用[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]将包含您的内容。

希望这能有所帮助。