base da cidade também pode e deve ficar em Elementor, mas do jeito certo: Elementor limpo, cada shortcode em um widget separado, sem transformar tudo em um bloco único.

Abaixo vai a sequência completa só para o TEMPLATE_CIDADE_BASE_OFICIAL — ID 1371.

Regra: se algum comando mostrar ERRO, pare e me mande o retorno.


COMANDO 1 — Backup da base cidade

 
wp db export /root/imprensa-before-template-cidade-elementor-limpo-$(date +%F-%H%M).sql --path=/home/imprensaamazonica.com.br/public_html --allow-root

wp post get 1371 --format=json --path=/home/imprensaamazonica.com.br/public_html --allow-root > /root/template-1371-before-elementor-limpo.json

wp post meta list 1371 --format=json --path=/home/imprensaamazonica.com.br/public_html --allow-root > /root/template-1371-before-elementor-limpo-meta.json

echo "OK: backup do template cidade 1371 feito."
 

COMANDO 2 — Converter o template 1371 para Elementor limpo

 
cat > /tmp/imop_template_1371_elementor_limpo.php <<'PHP'
<?php

$id = 1371;

function imop_el_id_1371() {
return substr(md5(uniqid('', true)), 0, 7);
}

function imop_shortcode_widget_1371($shortcode) {
return array(
'id' => imop_el_id_1371(),
'elType' => 'widget',
'settings' => array(
'shortcode' => $shortcode,
),
'elements' => array(),
'widgetType' => 'shortcode',
);
}

function imop_section_1371($widget) {
return array(
'id' => imop_el_id_1371(),
'elType' => 'section',
'settings' => array(
'layout' => 'full_width',
'gap' => 'no',
),
'elements' => array(
array(
'id' => imop_el_id_1371(),
'elType' => 'column',
'settings' => array(
'_column_size' => 100,
'_inline_size' => null,
),
'elements' => array($widget),
'isInner' => false,
)
),
'isInner' => false,
);
}

$shortcodes = array(
' ',
'',
'
',

'',
'
Cidade
',

'

Venha ser um Agente Regional do Imprensa Amazônica

Nosso Agente tera uma preparação de alta qualidade e performance para atuar com grande estilo e desenvoltura

',

'
',

'
',

'

TV Imprensa

APRESENTACAO DOS 25 EBOOKS DO IMPRENSA AMAZONIA

',

'

Coluna Social

Sem conteúdo para este bloco.
',

'

Publicidade

',

'

Politica

',

'

Economia

',

'

Cidade em Foco

',

'

Publicidade

',

'

Meio Ambiente

Sem conteúdo para este bloco.
',

'',
);

$data = array();

foreach ($shortcodes as $shortcode) {
$data[] = imop_section_1371(imop_shortcode_widget_1371($shortcode));
}

$post_content = implode("\n\n", $shortcodes);

$r = wp_update_post(array(
'ID' => $id,
'post_content' => $post_content,
), true);

if (is_wp_error($r)) {
echo "ERRO: " . $r->get_error_message() . "\n";
return;
}

update_post_meta($id, '_elementor_edit_mode', 'builder');
update_post_meta($id, '_elementor_template_type', 'wp-page');
update_post_meta($id, '_elementor_data', wp_slash(wp_json_encode($data)));
update_post_meta($id, '_wp_page_template', 'elementor_canvas');

delete_post_meta($id, '_elementor_css');

if (class_exists('\Elementor\Plugin')) {
try {
\Elementor\Plugin::$instance->files_manager->clear_cache();
} catch (Throwable $e) {
echo "AVISO: cache Elementor nao limpo: " . $e->getMessage() . "\n";
}
}

echo "OK: Template cidade 1371 convertido para Elementor limpo.\n";
echo "ELEMENTOR_DATA_SHORTCODES=" . substr_count(get_post_meta($id, '_elementor_data', true), 'imprensa_') . "\n";
echo "POST_CONTENT_SHORTCODES=" . substr_count(get_post_field('post_content', $id), 'imprensa_') . "\n";
PHP

wp eval-file /tmp/imop_template_1371_elementor_limpo.php --path=/home/imprensaamazonica.com.br/public_html --allow-root
 

COMANDO 3 — Validar Elementor Data do template cidade

 
wp eval '$id=1371; $data=get_post_meta($id,"_elementor_data",true); echo "LEN=".strlen($data)."\n"; $j=json_decode($data,true); echo "JSON_ERROR=".json_last_error_msg()."\n"; echo "IS_ARRAY=".(is_array($j)?"yes":"no")."\n"; echo "topo_rede=".substr_count($data,"        

        
        ");' --path=/home/imprensaamazonica.com.br/public_html --allow-root | grep -o "imop-ebooks-module\|imop-menu-cidades\|imop-menu-portal\|imtc" | head -n 30
 

Precisa aparecer algo relacionado a:

 
imop-ebooks-module
imop-menu-cidades
imop-menu-portal
 

COMANDO 5 — Limpar cache

 
wp litespeed-purge all --path=/home/imprensaamazonica.com.br/public_html --allow-root
 

COMANDO 6 — Testar cidade no navegador via terminal

 
curl -s -L -o /tmp/belem-template-elementor-limpo.html -w "%{http_code}\n" "https://portal.imprensaamazonica.com.br/belem/?teste=$(date +%s)"

grep -o "imop-ebooks-module" /tmp/belem-template-elementor-limpo.html | wc -l

grep -o "imop-menu-cidades" /tmp/belem-template-elementor-limpo.html | wc -l

grep -o "imop-menu-portal" /tmp/belem-template-elementor-limpo.html | wc -l
 

Esperado:

 
200
maior que 0
maior que 0
maior que 0
 

COMANDO 7 — Conferir se a Home continua ok

 
curl -s -L -o /tmp/home-pos-template-cidade.html -w "%{http_code}\n" "https://portal.imprensaamazonica.com.br/?teste=$(date +%s)"

grep -o "imop-ebooks-module" /tmp/home-pos-template-cidade.html | wc -l

grep -o "imop-home-rede-auto" /tmp/home-pos-template-cidade.html | wc -l
 

Esperado:

 
200
maior que 0
maior que 0
 

COMANDO 8 — Checkpoint final se tudo estiver certo

 
wp db export /root/imprensa-home-e-template-elementor-limpos-ok-$(date +%F-%H%M).sql --path=/home/imprensaamazonica.com.br/public_html --allow-root

wp post get 455 --format=json --path=/home/imprensaamazonica.com.br/public_html --allow-root > /root/home-455-elementor-limpa-ok.json

wp post meta list 455 --format=json --path=/home/imprensaamazonica.com.br/public_html --allow-root > /root/home-455-elementor-limpa-ok-meta.json

wp post get 1371 --format=json --path=/home/imprensaamazonica.com.br/public_html --allow-root > /root/template-1371-elementor-limpo-ok.json

wp post meta list 1371 --format=json --path=/home/imprensaamazonica.com.br/public_html --allow-root > /root/template-1371-elementor-limpo-ok-meta.json

echo "OK: checkpoint final Home + Template Cidade Elementor limpos criado."
 

Resultado final esperado

Depois disso:

 
✅ Home 455 abre no Elementor
✅ Template Cidade 1371 abre no Elementor
✅ Cada módulo fica em widget separado
✅ Você pode ajustar containers no Elementor
✅ Os dados continuam vindo dos shortcodes
✅ As 144 cidades continuam puxando o template base
✅ Você não precisa editar cidade por cidade
 

E sobre os blocos automáticos:

 
Home:

Coluna Social

TV Imprensa

APRESENTACAO DOS 25 EBOOKS DO IMPRENSA AMAZONIA

Stories Tv

Sem conteúdo para este bloco.

Mundo

Politica

Economia

Cidade em Foco

Noticias do Estado

Saude E Bem Estar

Concursos E Empregos

Eco Amazonia

Agronegocio

Magazine

Autos E Motos

Sem conteúdo para este bloco.

Vida No Campo

Gadgets

Amazonia

COP 30 e IPAM apresenta mapa global para frear desmatamento até 2030

Roteiro discutido em Nova York reúne países florestais, organismos internacionais e especialistas para transformar metas ambientais em ações concretas

A presidência da COP30 apresentou a primeira etapa do Mapa do Caminho para interromper e reverter o desmatamento e a degradação florestal…

Meio Ambiente

Semas entrega equipamentos e fortalece reciclagem em Salvaterra, no Marajó

Cooperativa Cata Salvaterra recebe nova estrutura para ampliar coleta, triagem e beneficiamento de resíduos recicláveis em área turística da ilha

A Semas entregou equipamentos à Cooperativa Cata Salvaterra, no Marajó, para fortalecer a reciclagem, gerar renda e ampliar a destinação correta de…

Povos Da Floresta

Tecnologia

Android 17 aposta no Gemini para se tornar um sistema mais inteligente

Nova proposta do Google amplia uso de inteligência artificial para automatizar tarefas e antecipar ações do usuário

O Google apresentou o Android 17 como um “sistema inteligente”, com recursos integrados ao Gemini Intelligence. A proposta é usar inteligência artificial…

Saude A Mesa



Cidade:
os blocos principais continuam separados por shortcode no Elementor.
 

Se depois você quiser que a cidade também tenha um bloco automático igual à Home, a próxima etapa segura é criar:

 
[imprensa_cidade_auto]
 

Mas eu não misturaria isso agora com a conversão Elementor. Primeiro estabiliza Home + Cidade abrindo certinho no Elementor.