Remove specific shortcode from get_the_content()

If you want exactly this shortcode:


to output nothing, then you can use the wp_video_shortcode_override filter or the wp_video_shortcode filter to achieve that.

Here are two such examples:

Example #1

/**
 * Let the  shortcode output "almost" nothing (just a single space) for specific attributes
 */
add_filter( 'wp_video_shortcode_override', function ( $output, $attr, $content, $instance )
{  
    // Match specific attributes and values
    if( 
          isset( $atts['height'] ) 
        && 300 == $atts['height'] 
        && isset( $atts['width'] ) 
        && 400 == $atts['width'] 
        && isset( $atts['mp4'] )
        && 'localhost.com/video.mp4' == $atts['mp4']   
    )
        $output=" "; // Must not be empty to override the output

    return $output;
}, 10, 4 );

Example #2

/**
 * Let the  shortcode output nothing for specific attributes
 */
add_filter( 'wp_video_shortcode', function( $output, $atts, $video, $post_id, $library )
{
    // Match specific attributes and values
    if( 
          isset( $atts['height'] ) 
        && 300 == $atts['height'] 
        && isset( $atts['width'] ) 
        && 400 == $atts['width'] 
        && isset( $atts['mp4'] )
        && 'localhost.com/video.mp4' == $atts['mp4']   
    )
        $output="";

    return $output;
}, 10, 5 );

Note

I would recommend the first example, because there we are intercepting it early on and don’t need to run all the code within the shortcode callback.

Leave a Comment