Как вывести ротатор через шорткод?

Здравствуйте друзья! Нужна помощь:
Для ротации рекламных блоков использую такой код:

<?php
$banners = array(
'код баннера 1',
'код баннера 2',
'код баннера 3'
);
echo $banners[array_rand($banners)];
?>

Он отлично работает в сайдбаре и если выводить через шаблон (single.php и т.д.), но при попытке вывести его через шорткод в посте, выдает ошибку:

Parse error: syntax error, unexpected 'async' (T_STRING) in ...блаблабла

Сам шорткод:

function reklama_content2() {return '';}
add_shortcode('ad2', 'reklama_content2');

Код ротатора вместе с шорткодом выглядит вот так:

function reklama_content2() {return '<?php
$banners = array(
'код баннера 1',
'код баннера 2',
'код баннера 3'
);
echo $banners[array_rand($banners)];
?>';}
add_shortcode('ad2', 'reklama_content2');

Если код сделать в такой вид:

function reklama_content2() {return '<?php
$banners = array(
"код баннера 1",
"код баннера 2",
"код баннера 3"
);
echo $banners[array_rand($banners)];
?>';}
add_shortcode('ad2', 'reklama_content2');

то он выводит все три блока рекламы сразу и между ними еще часть кода, вот как это выглядит:

В functions.php добавил "возможность php в статьях", код брал отсюда: https://wp-kama.ru/id_87/ispolnyaemyiy-php-kod-v-zapisyah-wordpress.html

прописав [exec][/exec] выдает все также как на картинке, только с добавлением [exec][/exec] спереди и в конце

Помогите пожалуйста починить вывод ротатора в статьях smile