如何将 Wordpress 标题标签转换为 html div 标签

How to convert Wordpress caption tag to html div tag

我从 Wordpress 转换了一个网站,我的一些帖子有如下标题标签:

[caption id="attachment_666" align="alignleft" width="316"]
    <img class="wp-image-92692" src="img" width="316"  alt="fitbit-yoga-lady.png" height="210">   
    text
[/caption]

我想捕捉所有这些字幕并将其转换为以下内容

<div id="attachment_666" style="width: 326px" class="wp-caption alignleft">
  <img class="wp-image-92692" src="img" alt="fitbit-yoga-lady.png" width="316" height="210">
  <p class="caption">text</p>
</div>

我在 phone 上盲目地这样做,但我 认为 您可以使用以下两个正则表达式,一个用于开始标记,另一个用于收盘:

查找: \[caption([^\]])\] 代替: <div>

查找: \[/\caption\] 代替: </div>

好吧,鉴于您提供的确切文本,以下内容应该有效。

搜索模式:

\[caption([^\]]+)align="([^"]+)"\s+width="(\d+)"\](\s*\<img[^>]+>)\s*(.*?)\s*\[\/caption\]

替换:

<divstyle="width: px" class="wp-caption ">
    <p class="caption"></p>
</div>

参见demo

根据需要对输入变化的容忍程度,您可能需要从那里进行调整,但这至少应该让您入门。

下面是如何使用 preg_replace 完成此操作的示例:

function convert_caption($content) 
{ 
    return preg_replace(
        '/\[caption([^\]]+)align="([^"]+)"\s+width="(\d+)"\](\s*\<img[^>]+>)\s*(.*?)\s*\[\/caption\]/i', 
        '<divstyle="width: px" class="wp-caption "><p class="caption"></p></div>', 
        $content); 
}