I had a weird situation where I needed to insert some menus in our mobile home page's content area. I whipped up a new shortcode that would let me call menus by name ([menu name="students"]), and I stuck this in functions.php:
function print_menu_shortcode($atts, $content = null) {
return wp_nav_menu( array( 'menu' => $atts['name'], 'echo' => false ) );
}
add_shortcode('menu', 'print_menu_shortcode');
... but the shortcodes aren't processed when viewing the mobile version of the page. If I switch to the full view, the menus are shown correctly. As an experiment, I moved this code chunk to a plugin file instead of functions.php, and that also displays correctly.