如何获得短代码的特定部分?

时间:2016-03-14 13:16:41

标签: wordpress

我有一个脚本,可以根据带字幕的短代码捕获帖子中的所有图像,并将图像和字幕输出到轮播

这就是看起来如何短码:

[caption id="attachment_52788" align="alignnone" width="435" caption="my caption"]<a href="#"><img src="image.jpg" alt="" title="my title" width="435" height="363" class="size-full wp-image-52788" /></a>[/caption]

这是提取字幕和iamges的PHP代码

$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
    $output2 = preg_match_all('/caption="(.*?)"/', $post->post_content, $matches2);
    $gallery = $matches[1];
    $captions = $matches2[1];
    $count_of_captions = 0;
    foreach ($captions as $capt) {

        $js .= 'captions[' . $ii . '] = "' . $capt . '";' . "\n";
        $ii++;

        if ($capt != "") {
            $count_of_captions++;
        }
    }

所有这些都适用于旧的wordpress版本。现在wordpress输出这个方法中的标题:

[caption id="attachment_52725" align="alignnone" width="440"]<img class="size-full wp-image-52725" src="image.jpg" alt="" height="347" /> my caption[/caption]

现在字幕是在图片标记之后。我现在该如何提取字幕?

1 个答案:

答案 0 :(得分:0)

我找到了答案

这部分

position

替换为

$output2 = preg_match_all('/caption="(.*?)"/', $post->post_content, $matches2);