Я не знаю, в этом ли ваша проблема, но шорткод "код разбора" серьезно облажался. Есть все виды особых случаев (которые на самом деле не такие уж особые), когда они либо а) не работают вообще, либо б) делают что-то совершенно отличное от того, что вы ожидаете.
Два примера:
[shortcode][shortcode]
(без пробела между ними) игнорирует второй.
[shortcode] [shortcode] [/shortcode]
будет не делать то, что вы хотите, даже если это технически "правильно".
Фундаментальная проблема заключается в том, что они «создали» («наткнулся на» может быть более подходящее описание) синтаксис, который по своей сути не разбирается. А потом ... они пытаются разобрать это с помощью регулярного выражения. Это обречено на неудачу - на самом деле это хуже, чем пытаться проанализировать HTML с помощью регулярного выражения , как это ни трудно.
Единственное верное решение - это избавиться от странного унаследованного синтаксиса, а затем заменить текущий «парсер» на тот, который действительно работает. Взаимодействия в списке рассылки группы разработчиков не показывают, что они понимают, как далеко они зашли в тупик.