Удалить визуальный шорткод композитора
Я пытаюсь удалить все ненужные шорткоды из визуального композитора с некоторыми preg_replace
, Например, есть некоторые элементы, подобные этому:
[vc_row][/vc_row][vc_row el_class="hidepdf]
Лучший способ - удалить что-либо между []
начиная с vc_
а затем что-нибудь до конца скобки ]
Я попробовал это со следующими RegEx:
/\[[\/]?vc_*[^\]]\]/
Но это не похоже на работу.
4 ответа
Решение
Чтобы удалить ненужные шорткоды 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);