The correct way is calling remove_filter
with the same priority as the hook was added:
remove_filter( 'the_content', 'do_shortcode', 11 );
Some plugins change this filter’s priority, so you could clear the global list of registered shortcodes temporary:
add_filter( 'the_content', 'toggle_shortcodes', -1 );
add_filter( 'the_content', 'toggle_shortcodes', PHP_INT_MAX );
function toggle_shortcodes( $content )
{
static $original_shortcodes = array();
if ( empty ( $original_shortcodes ) )
{
$original_shortcodes = $GLOBALS['shortcode_tags'];
$GLOBALS['shortcode_tags'] = array();
}
else
{
$GLOBALS['shortcode_tags'] = $original_shortcodes;
}
return $content;
}