Как описано в в этом ответе , я предлагаю разрешить WordPress выполнять вашу работу с помощью функции get_shortcode_regex()
.
$pattern = get_shortcode_regex();
preg_match_all("/$pattern/",$wp_content,$matches);
Это даст вам массив с которыми легко работать, и показывает различные короткие коды и аффилированные атрибуты в вашем контенте. Это не самый очевидный формат массива, поэтому распечатайте его и посмотрите, чтобы вы знали, как управлять данными, которые вам нужны.