Entferne spezifischen Shortcode von get_the_content ()

Ich habe eine Variable wie folgt:

$post_content = get_the_content(); 

Hier möchte ich einen bestimmten Shortcode aus der $ post_content-Variable entfernen, zB möchte ich nur alle anderen Shortcodes und Inhaltsformatierungen entfernen

sollte intakt bleiben.

Wie könnte das gemacht werden?

AKTUALISIEREN:

Ich bin in der Lage, einen bestimmten Shortcode zu entfernen, indem ich einen Code wie diesen verwende …

  

Aber es entfernt auch alle HTML-Tags / Formatierung von get_the_content() . Wie man es vermeidet?

Solutions Collecting From Web of "Entferne spezifischen Shortcode von get_the_content ()"

Wenn du genau diesen Shortcode willst:

 [video height="300" width="300" mp4="localhost.com/video.mp4"] 

wp_video_shortcode_override nichts auszugeben, können Sie den Filter wp_video_shortcode_override oder den Filter wp_video_shortcode .

Hier sind zwei Beispiele:

Beispiel 1

 /** * Let the [video] 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 ); 

Beispiel # 2

 /** * Let the [video] 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 ); 

Hinweis

Ich würde das erste Beispiel empfehlen, weil wir es früh abfangen und nicht den gesamten Code innerhalb des Shortcode Callbacks ausführen müssen.

Wäre es nicht

 $post_content_without_shortcodes = strip_shortcodes(get_the_content()); 

oder auch

 $post_content_without_shortcodes = remove_all_shortcodes(get_the_content()); 

Sie können die PHP preg_replace- corefunktion verwenden, um nach Ihrem Kurzwahlcode im Inhalt zu suchen und ihn zu entfernen, damit Ihr Code folgendermaßen aussieht:

 $post_content_without_shortcodes = preg_replace ( '/\[video(.*?)\]/s' , '' , get_the_content() );