A função wp_nav_menu usa um argumento de fallback_cb, que é o nome da função a ser executada se o menu não existir. então mude seu código para algo assim:
function wp_nav_menu_no_ul()
{
$options = array(
'echo' => false,
'container' => false,
'theme_location' => 'primary',
'fallback_cb'=> 'fall_back_menu'
);
$menu = wp_nav_menu($options);
echo preg_replace(array(
'#^<ul[^>]*>#',
'#</ul>$#'
), '', $menu);
}
function fall_back_menu(){
return;
}
você pode até mesmo remover o container do menu e fazer outras coisas com mais argumentos enviados para a função wp_nav_menu
Espero que isso ajude.