Después de migrar miles de publicaciones a un entorno Laravel lejos de WordPress, logré mitigar la mayoría de los desastres y me quedé con el pequeño problema de los códigos cortos de subtítulos en las publicaciones. Se ven así:
<a href="https://uq.wd3.example.com/R-05591-1"><img class="size-full wp-image-38469" src="https://example.wpengine.com/wp-content/uploads/2022/01/U0036.jpg" alt="This is an example" width="1042" height="2500" /></a> This is where the caption would go
Hasta ahora he logrado eliminar las etiquetas de subtítulos (incluso subtítulos múltiples) con el siguiente código:
$caption = 'Beginning stuff <a href="https://uq.wd3.example.com/R-05591-1"><img class="size-full wp-image-38469" src="https://example.wpengine.com/wp-content/uploads/2022/01/U0036.jpg" alt="This is an example" width="1042" height="2500" /></a> This is where the caption would go ending stuff <a href="https://uq.wd3.example.com/R-05591-1"><img class="size-full wp-image-38469" src="https://example.wpengine.com/wp-content/uploads/2022/01/U0036.jpg" alt="This is an example" width="1042" height="2500" /></a> Second caption and a last spot';
$c2 = preg_replace('%([captionb[^]]*](.*?)([/caption]))%', '$2', $caption);
// Preview:
print_r($c2, true);
Idealmente, me encantaría convertir estos subtítulos en:
Content before<div class="captioned-image m-auto"><a href="*"><img src="*" /></a><span class="caption">*</span></div>content after
Donde el m-auto la etiqueta está presente si la etiqueta de alineación es «aligncenter», pero eso es realmente una ventaja, si puedo obtener un lapso alrededor de los subtítulos y un div alrededor de los datos subtitulados, sería genial.
.