Не зная, что делает функция shortcode_atts (), похоже, что вы передаете массив, чтобы установить значения по умолчанию ('slot' = пустая строка), после чего extract () преобразуется в $short = ''
extract(shortcode_atts(array(
'slot' => ''
), $atts));
право? Теперь, когда $ slot - пустая строка, она не будет соответствовать ни одному из случаев в вашем переключателе, и, следовательно, запускается регистр по умолчанию, который выдает исключение «Рекламный слот не определен».