Задать вопрос
@MrSusua

Как дописать функцию WordPress изменяющую [caption] на figure во время сохранения записи?

Здравствуйте!

Я написал регулярное выражение, которое превращает шорткод [caption] в тэг figure:

$content = preg_replace( "/(\[caption.*?(id=\"\s*(.*?)\s*\").*?(align=\"\s*(.*?)\s*\").*?\].*?<a.*?href=\"\s*(.*?)\s*\".*?>.*?<img\s?(.*?)\s?alt=\"\s*(.*?)\s*\"\s*(.*?)\s?\/?\s?><\s*\/\s*a\s*>\s*(.*?)\s*\[\/caption\])/i", "<figure id=\"$3\" class=\"wp-caption $5\">\r\n\t<a href=\"$6\">\r\n\t\t<img $7 alt=\"$8\" $9>\r\n\t</a>\r\n\t<figcaption class=\"wp-caption-text\">$10</figcaption>\r\n</figure>", $content );


Теперь мне нужно сделать так, чтобы это срабатывало при сохранении записи. На форуме WordPress нашёл функцию, которая отвечает за это. Как их совместить?

function my_filter_function_name( $content ) {
  // Process content here
  return $content;
}

add_filter( 'content_save_pre', 'my_filter_function_name', 10, 1 );
  • Вопрос задан
  • 423 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
kalbac
@kalbac
Wordpress Developer Full-Stack
Не понятно зачем вам тут такая регулярка.
Попробуйте так:
function my_filter_function_name( $content ) {
  return str_replace( array( '[caption', '[/caption]' ), array( '[figure', '[/figure]' ), $content );
}

add_filter( 'content_save_pre', 'my_filter_function_name', 10, 1 );
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы