[MU] Como preservar o shortcode [embed]

📘 MU-Plugin: Preservar o shortcode EMBED no editor (versão final)

Arquivo: /wp-content/mu-plugins/embed-nativo-preservado.php


<?php
/**
 * Plugin Name: Embed Nativo Preservado (Final)
 * Description: Mantém o shortcode no banco de dados, sem conversão em HTML, e sem quebrar o editor visual.
 * Version: 3.0
 * Author: Reinaldo (Portanova)
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

// 1. Impede que o oEmbed converta o shortcode em HTML ao salvar o post
add_filter( 'pre_oembed_result', function( $result, $url, $args ) {
    // Para qualquer URL, independente do tipo (áudio, vídeo, etc.), interrompe a conversão
    return false;
}, PHP_INT_MAX, 3 );

// 2. Garante que o shortcode seja renderizado corretamente no front-end
add_filter( 'the_content', function( $content ) {
    if ( has_shortcode( $content, 'embed' ) ) {
        global $wp_embed;
        $content = $wp_embed->run_shortcode( $content );
    }
    return $content;
}, 10 );

// 3. Permite que o shortcode< passe ileso pelos filtros de segurança (KSES)
add_filter( 'pre_kses', function( $content ) {
    if ( strpos( $content) !== false ) {
        return $content;
    }
    return $content;
}, 1 );
?>


==============================

Instruções:

  1. Crie o arquivo com o nome indicado dentro da pasta /wp-content/mu-plugins/.
  2. Limpe o cache do navegador e, se houver, o cache do WordPress.
  3. Faça logout e login novamente.
Média: 3.0 (25 votos)