Удалить визуальный шорткод композитора

Я пытаюсь удалить все ненужные шорткоды из визуального композитора с некоторыми preg_replace, Например, есть некоторые элементы, подобные этому:

[vc_row][/vc_row][vc_row el_class="hidepdf]

Лучший способ - удалить что-либо между [] начиная с vc_ а затем что-нибудь до конца скобки ]

Я попробовал это со следующими RegEx:

/\[[\/]?vc_*[^\]]\]/

Но это не похоже на работу.

4 ответа

Решение

Попробуйте это регулярное выражение "/\[(\/*)?vc_(.*?)\]/"

Чтобы удалить ненужные шорткоды wpbakery из вашего контента WordPress, вы можете использовать специальную функцию в файле function.php вашей темы. Вот как вы можете это сделать:

      function remove_unnecessary_shortcodes($content) {
$pattern = '/\[\/?vc_[^\]]*\]/';
$replacement = '';
$new_content = preg_replace($pattern, $replacement, $content);
return $new_content;
}
add_filter('the_content', 'remove_unnecessary_shortcodes');
      <?php
while($posts->have_posts()) {
      $postContent = get_the_content();
      //Remove visual composer tags [vc_column] etc
      $postContent = preg_replace( "/\[(\/*)?vc_(.*?)\]/", '', $postContent );
}
?>

Вы можете просто удалить контент в панели управления администратора. Почему вы должны заменить содержание, rofl.

Но если вам очень-очень нужно

$start = preg_quote('[vc_row]', '/');
$end = preg_quote('[/vc_row]', '/');
$content = preg_replace("/$start.*$end/imsU", '', $content);
Другие вопросы по тегам