Documentação do MevvBridge

Desligue o Elementor sem quebrar o site.

O MevvBridge é uma ponte de compatibilidade, não um conversor. Ele reconstrói o que reconhece a partir dos seus próprios dados do Elementor e captura todo o resto exatamente como aparece enquanto o Elementor ainda está instalado. Esta página cobre as duas etapas, o que continua editável, o que congela, como voltar atrás e as coisas que ele deliberadamente não faz.

Instalação

O MevvBridge precisa do WordPress 6.0 ou mais recente e do PHP 8.1 ou mais recente. Ele é totalmente gratuito e não existe edição Pro — nenhum recurso é bloqueado.

Instale-o enquanto o Elementor ainda está ativo. A via congelada é capturada a partir da própria renderização do Elementor; se você rodar a tomada de controle com o Elementor desligado, o resultado vem vazio.

  1. Envie e ative o plugin. Ainda não remova o Elementor.
  2. Abra o MevvBridge no menu lateral do admin e leia o relatório.
  3. Pressione Assumir. Nada é excluído e nenhuma página é editada — apenas a aparência dos elementos congelados é capturada.
  4. Desative o Elementor e percorra suas páginas.
  5. Se estiver tudo no lugar, você pode desinstalar o Elementor.
  6. Se quiser, pressione Converter em blocos. Depois dessa etapa o conteúdo é WordPress nativo e o próprio MevvBridge também pode ser removido.

Se algo parecer errado depois da etapa 4, reative o Elementor: o MevvBridge sai do caminho sozinho.

Como funciona

O MevvBridge lê o post meta _elementor_data — seus dados originais, que ele nunca apaga — e separa cada elemento em uma de duas vias.

Via ao vivo
Os elementos que ele reconhece são reconstruídos a partir dos seus dados a cada requisição, tanto a marcação quanto o CSS. Continuam editáveis e continuam responsivos.
Via congelada
Todo o resto é capturado uma vez, enquanto o Elementor ainda está instalado: o HTML renderizado do elemento mais apenas as regras CSS que se dirigem a ele. É impresso de volta exatamente como era — não editável, mas também não quebrado.

A regra é uma lista de permissões, não uma lista de bloqueios. Um “eu reconheço isto” errado quebra a página; um “eu não reconheço isto” errado só custa a editabilidade. Widgets de terceiros ficam deliberadamente fora da lista de permissões, porque seus esquemas de controle são fechados para nós.

Até você converter para blocos, seu post_content não é tocado em nada. O MevvBridge entra em the_content e produz a página ao vivo. Ele só faz isso enquanto nenhum construtor de páginas de origem estiver ativo — reinstale o Elementor e a ponte se retira.

O relatório — leia antes de sair

O MevvBridge tem uma única tela de administração, em MevvBridge no menu lateral. Ela exige a capacidade de administrador. Tudo acontece ali.

A varredura procura conteúdo publicado que carregue dados do Elementor, seja qual for o tipo de post. Isso importa: cabeçalhos, rodapés e bibliotecas de modelos são guardados como tipos de post próprios, e uma varredura limitada a páginas e posts os perde.

Resumo
Quantas páginas, quantos elementos e quantos deles vão congelar.
A tabela
Uma linha por conteúdo: Conteúdo · Tipo · Ativos · Será congelado · O que será congelado. A última coluna nomeia os tipos de widget que serão congelados e quantos há de cada um.
Aviso sobre conteúdo dinâmico
Marcado com ⚠. Conteúdo que muda a cada requisição — uma grade de produtos, uma lista de posts. Congelado, ele fica preso ao que exibia no momento da captura.
Conteúdo que não pode ser convertido
Marcado com ⛔. Elementos que parariam de funcionar se fossem congelados — formulários de checkout, formulários de contato, logins, sliders. As páginas que os contêm são recusadas pela conversão em blocos e permanecem com o Elementor.

Dois problemas diferentes, separados de propósito: dinâmico significa que fica desatualizado, perigoso significa que para de funcionar.

A etiqueta de status no topo mostra Ativo quando o MevvBridge está produzindo suas páginas, e Plugin de origem ativo enquanto um construtor de páginas de origem ainda estiver ativo.

Etapa 1 — Assumir

Esta etapa não remove o Elementor e não edita nenhuma página. Ela captura.

  • O HTML renderizado de cada elemento congelado, tirado da própria renderização de front-end do Elementor.
  • Apenas as regras CSS que se dirigem a esse elemento, com o prefixo de escopo da página removido para que as regras continuem valendo depois da troca.
  • O SVG dos elementos de ícone e caixa de ícone — esses ficam na via ao vivo, mas o ícone deles só existe na saída renderizada. Se o SVG estiver faltando, nada é impresso; um ícone inventado seria pior.
  • As folhas de estilo que os plugins de origem realmente imprimiam no front-end, copiadas para a sua pasta de uploads e reenfileiradas em seguida.
  • As cores globais e a tipografia do Elementor do kit ativo, reemitidas como as mesmas variáveis CSS que suas páginas já referenciam.
  • O CSS inline que seu tema imprime apenas enquanto o Elementor está ativo.

Os elementos capturados são guardados em uma tabela própria em vez de em post meta, de modo que não são carregados a cada requisição.

O site inteiro é capturado em uma única requisição. Em um site muito grande isso pode bater no limite de tempo do PHP — é um limite conhecido, não uma falha silenciosa: o aviso de resultado informa quantos elementos foram capturados e lista os primeiros erros.

Etapa 2 — Converter em blocos

Opcional, e só é liberada depois que a etapa 1 tiver rodado. Ela escreve marcação de blocos padrão em post_content, de modo que o conteúdo se torna WordPress nativo e o MevvBridge pode ser desinstalado.

  1. Os elementos reconhecidos viram blocos mevvsoft/* — os blocos do MevvBlocks.
  2. Os elementos congelados viram um bloco core/html com o CSS embutido dentro dele, de modo que sobrevivem mesmo depois de todos os plugins terem sumido.
  3. O post_content original é salvo no post meta _mevvbridge_onceki_icerik antes de qualquer coisa ser escrita.

A conversão é tudo ou nada por página. Se um elemento congelado não tiver um instantâneo capturado, aquela página é pulada em vez de ficar escrita pela metade — meia página é pior do que nenhuma. Páginas que carregam um elemento que pararia de funcionar também são puladas, e o aviso as nomeia.

Depois desta etapa, editar essas páginas exige o MevvBlocks. Visualizá-las não: a marcação é padrão e as partes congeladas são blocos HTML do núcleo.

Por que não blocos do núcleo? Porque até o WordPress 7.1 os atributos dos blocos do núcleo ainda não têm conceito de breakpoint. Na página inicial de referência, 23 dos 35 elementos ao vivo carregavam valores de tablet ou celular; escrevê-los como core/group teria jogado fora ou a responsividade ou a fidelidade ao pixel.

O que continua editável

Estes tipos de elemento do Elementor são reconstruídos a partir dos seus dados e ficam na via ao vivo:

containerheadingtext-editorbuttondividerimagetestimonialiconicon-boxicon-listshortcode

Os shortcodes são executados ao vivo em vez de congelados — congelar um shortcode prenderia sua saída ao momento da captura.

Três widgets de terceiros têm equivalente nativo e são mapeados em vez de congelados:

uael-woo-products
Vira o bloco de produtos, mantendo a quantidade de itens, a contagem de colunas para desktop/tablet/celular, a ordenação e o filtro de categoria.
uael-woo-categories
Vira o bloco de categorias de produto, mantendo o layout, as colunas, a posição do título e a regra de filtro.
wpforms
Vira um bloco de shortcode contendo o shortcode do WPForms. Este não é um motor de formulários nosso — o widget não fazia nada além de chamar o WPForms, e o shortcode faz o mesmo.

Um tipo reconhecido sem equivalente em bloco é congelado em vez de imitado. Mapeamento aproximado é quebra silenciosa.

O que congelar significa de verdade

Um elemento congelado fica idêntico e continua funcionando como marcação, mas:

  • não pode ser editado no MevvBridge nem no editor de blocos além do HTML bruto;
  • se ele exibia conteúdo dinâmico, agora exibe o que exibia no dia em que foi capturado;
  • se ele precisava de JavaScript — um slider, um carrossel, um acordeão — a cópia congelada imprime seu conteúdo empilhado, porque o script que o tornava interativo se foi.

Esse último caso é o motivo de sliders e carrosséis estarem na lista de perigosos: o MevvBridge não converte páginas que os contêm. Trazer junto o script do plugin de origem foi descartado — ele depende do próprio runtime de front-end do construtor e da configuração por página.

Para retomar o controle de um elemento congelado, ou você reinstala o plugin de origem, ou apaga e reconstrói com um bloco.

Modelos de cabeçalho e rodapé

Uma migração que leva só o corpo da página perde o rodapé silenciosamente. O MevvBridge imprime em seu lugar os modelos de cabeçalho e rodapé de origem, lendo-os das próprias configurações do Header Footer Elementor.

Existem receitas de tema para Astra, GeneratePress e Storefront. Se o seu tema não tem receita, nada é impresso — encaixar um cabeçalho em um tema que não conseguimos levantar significa dois cabeçalhos, garantido. Se o MevvBlocks já tiver um modelo correspondente, o MevvBridge cede a vez a ele.

Os nomes de classe originais são reproduzidos, de modo que o CSS herdado da configuração antiga continua valendo.

Voltar atrás

Nada é apagado em momento algum. Seu _elementor_data continua exatamente onde estava; o MevvBridge lê e nunca escreve nele.

Antes da conversão em blocos
Reative o Elementor. O MevvBridge detecta e se retira do filtro de conteúdo, do repositório de estilos, dos globais e da tomada de controle do cabeçalho e rodapé. Não há nada a desfazer.
Depois da conversão em blocos
O conteúdo original está no post meta _mevvbridge_onceki_icerik de cada página convertida. Não há botão para isso; restaure com o WP-CLI.

Uma restauração tem uma armadilha: wp_update_post() espera entrada com barras invertidas e as remove ele mesmo. Se você gravar o backup de volta sem wp_slash(), as sequências de escape dentro dos atributos de bloco perdem a barra invertida — os SVGs aparecem na tela como um literal u003csvg.

wp eval '
foreach ( get_posts(["post_type"=>"any","numberposts"=>-1]) as $p ) {
  $y = get_post_meta( $p->ID, "_mevvbridge_onceki_icerik", true );
  if ( $y ) wp_update_post([ "ID"=>$p->ID, "post_content"=>wp_slash($y) ]);
}'

Limpe o cache de páginas depois. No LiteSpeed: wp litespeed-purge all.

Free e Pro

Não há divisão alguma a explicar. O MevvBridge é inteiramente gratuito, inclusive a etapa de conversão. Nenhum recurso é restrito, não há chave de licença e não há edição Pro.

É uma posição deliberada: este plugin existe para tirar você de uma assinatura. Cobrar pela saída seria a mesma armadilha em outra cor.

Quando algo não funciona

O relatório está vazio
Nenhum conteúdo publicado carrega dados do Elementor. Páginas em rascunho não são varridas.
A tomada de controle não produziu nada
O Elementor já estava desativado. Reative-o, rode a tomada de controle de novo e depois desative-o.
“Converter em blocos” está esmaecido
A etapa 1 ainda não foi executada. A condição é a tomada de controle ter rodado — não se algo congelou, porque um site com zero elementos congelados é o melhor caso e não deveria ficar bloqueado.
Algumas páginas foram puladas pela conversão
Ou um elemento congelado não tinha instantâneo, ou a página carrega um elemento que pararia de funcionar ao ser congelado. O aviso os conta; a tabela do relatório os nomeia com ⛔.
A tipografia ou o espaçamento mudaram depois de desligar o Elementor
Rode a tomada de controle de novo com o Elementor ativo. A captura de estilos mede o que seu site realmente imprimia no front-end, então ela precisa rodar em uma requisição de front-end, não a partir do admin.
A página ainda parece a versão antiga
Um cache de página inteira está servindo HTML desatualizado. Limpe-o — no LiteSpeed, wp litespeed-purge all. Adicione uma string de consulta aleatória à URL para conferir a página sem cache.
Apareceram dois rodapés
Seu tema não tem receita, ou também há um modelo de rodapé do MevvBlocks ativo. Verifique se apenas um deles está produzindo o rodapé.
A tomada de controle ou a conversão estourou o tempo limite
As duas rodam em uma única requisição. Em um site grande, aumente o limite de tempo do PHP para essa requisição ou rode-as em uma máquina mais tranquila.

Limites

A lista abaixo é o produto sendo honesto sobre si mesmo. Nada disso é um bug.

  • Somente Elementor. O Beaver Builder é reconhecido como plugin de origem para efeito de sair do caminho, mas não há leitor do Beaver nesta versão.
  • Widgets de terceiros sempre congelam. Reproduzir um esquema de controle fechado foi medido e falhou em todos os casos testados; congelar é o resultado honesto.
  • Elementos congelados não são editáveis e nunca se tornam editáveis por conta própria. Promovê-los à via ao vivo é trabalho futuro.
  • O conteúdo dinâmico fica preso ao momento da captura. Uma grade de produtos congelada não acompanha seu catálogo.
  • Páginas com formulários, checkouts, logins, sliders ou carrosséis não são convertidas de jeito nenhum — elas ficam com o Elementor.
  • Só os modelos de cabeçalho e rodapé são levados. Os modelos de post individual, arquivo e pop-ups do theme builder do Elementor Pro não.
  • Sem motor de formulários. O mapeamento do WPForms leva a chamada; o WPForms continua imprimindo o formulário.
  • Sem interface de edição. O MevvBridge renderiza; editar as páginas convertidas é tarefa do MevvBlocks.
  • A tomada de controle de cabeçalho e rodapé se limita a três receitas de tema e às próprias configurações do Header Footer Elementor.
  • Os instantâneos capturados vivem em uma tabela própria, então uma exportação WXR do WordPress não os leva. A recuperação é segura mesmo assim: reinstale o plugin de origem e capture de novo, porque seus dados originais nunca foram apagados.
  • As duas operações rodam em uma única requisição, sem divisão em lotes.