TLN tln.design
Artigos

WordPress · 08/09/2026

Jornal da Franca: case WordPress de portal regional em produção

Jornal da Franca homepage desktop com manchete e ticker agro

O Jornal da Franca é o portal regional da Alta Mogiana. Quando o site legado começou a atrapalhar a redação e a publicidade, o desafio deixou de ser “um tema bonito”. Era preciso entregar um sistema de publicação que a redação usa todo dia, que o comercial vende e que o Google encontra.

Contents

Introduction

Este case documenta a reconstrução full stack do tema WordPress do Jornal da Franca em produção. Stack: WordPress clássico, PHP, Tailwind 4 com build local, Google Ad Manager e Yoast. O resultado está no ar em jornaldafranca.com.br.

Truth Box

Key PointInsight
Produto, não só layoutHome em rio cronológico, travas de publicação e Screen Options pensados com a redação.
Receita no temaMais de 27 unidades GAM com size mapping alinhado ao layout real (wrap, coluna, sidebar).
Utilidade localClima, câmbio, agro Franca, loterias e falecimentos no mesmo produto editorial.
SEO e LGPD juntosJSON-LD NewsArticle, news sitemap, llms.txt, cookies antes do GPT e política editorial.
Cutover sem derrubar wwwStaging para produção com tema versionado, RML, redirects 301 e iteração pós go-live.
Jornal da Franca homepage desktop com manchete, ticker agro e plantão Agora
Home desktop: masthead, ticker agro e rio de notícias.

O problema do portal regional

Um jornal regional vive de leitura e de publicidade. O site antigo concentrava lógica frágil, inventário de banners legado, pastas de mídia acopladas a plugins e fluxos que geravam atrito: matérias “sumindo” em rascunho, horários desalinhados e home que não rodava.

O escopo cobriu arquitetura do tema, Google Ad Manager com consentimento, feeds utilitários, SEO, LGPD, migração e feedback contínuo do editor. Fora do Git ficaram core, uploads, plugins de terceiros e secrets, de propósito.

ÁreaDor no legadoMeta da entrega
RedaçãoPublicação silenciosa e home presaChecklist claro e rio cronológico
ComercialInventário BSA desalinhadoSlots IAB mapeados ao layout
LeitorUX mobile inconsistenteDock, offcanvas e tipografia de jornal
OpsCutover arriscadoStaging, redirects e RML preservada

Arquitetura do tema

functions.php só carrega módulos. Cada arquivo em inc/ tem uma responsabilidade (prefixo jdf_). Templates PHP renderizam o mínimo. O CSS Tailwind 4 é compilado na máquina local. O servidor não precisa de Node.

Decisões que importam em entrevista: escape e nonces em forms públicos, transients em queries caras, white-label com tokens CSS, tema clássico (não FSE) para controle editorial fino.

MóduloEntrega
editorial / home-sectionsTravas, modal, rio da home
ad-manager / ad-inventoryMonetização GAM
data-feeds / agroTicker e agro regional
seo / privacyDiscovery e LGPD
mobile-railExperiência na matéria no celular

Editorial, ads e feeds

Na redação: chapéu acima do título, foto e resumo obrigatórios, sync do resumo com Yoast (155 caracteres), teto de título com faixa SEO, relógio alinhado ao admin e plantão “Agora” com links clicáveis.

Na receita: size mapping por viewport, billboards só onde o layout aguenta, GPT só após aceite de cookies e área de anúncio que não some quando o fill falha. Na utilidade local: Open-Meteo, BCB, Agrolink, Caixa e snapshots de falecimentos.

Página de matéria do Jornal da Franca no desktop com dateline e leitura
Single de notícia no desktop: dateline, hierarquia e espaço para ads.

Mobile first e cutover

Mobile first não foi afterthought. Offcanvas de editorias, dock fixo (Menu, Anuncie, Colunas, Busca) e trilho de widgets no scroll da matéria. Tipografia e masthead com pegada de broadsheet digital.

Jornal da Franca homepage mobile first com dock Menu Anuncie Colunas Busca
Home mobile: dock fixo e manchete em card.
Matéria do Jornal da Franca no mobile com rail e dock inferior
Matéria no mobile: leitura limpa com dock sempre à mão.

O cutover staging → www preservou o domínio, restaurou Real Media Library (~102 pastas, ~50k mídias no dump legado), trocou BSA por GAM e aplicou redirects 301. Pós go-live, a home passou a um rio cronológico e o modal de publicação tirou o silêncio das falhas.

Comparativo antes e depois

AntesDepois
Rascunho sem avisoModal com checklist do que falta
Home com offset quebradoRio: matéria nova no topo
Horário −3h nos cardsHorário absoluto alinhado ao admin
Inventário BSAGAM nativo com consentimento
Agro incompletoBoi, café, laranja, milho, soja, algodão SP

Common Misconceptions

Mito: Portal de notícias é só um tema premium. Correção: Sem fluxo editorial, ads e cutover, o tema vira demo.

Mito: Google Ad Manager é colar um script. Correção: Size mapping, exclusividade de slot e consentimento definem fill rate e compliance.

Mito: Mobile first é só media query. Correção: Dock, rail e hierarquia de manchete mudam o produto no celular.

FAQ

O que foi desenvolvido no Jornal da Franca?

Tema WordPress modular, inventário GAM, feeds locais, SEO/LGPD, fluxos da redação e cutover do legado para www.

Qual stack técnica?

WordPress clássico, PHP 8.1+, Tailwind 4 (build local), Google Publisher Tag, Yoast e LiteSpeed.

O site está no ar?

Sim. Produção em www.jornaldafranca.com.br.

Como a redação publica agora?

Com travas de foto, chapéu e resumo. Se faltar algo, salva rascunho e abre modal listando o que completar.

Dá para ver o case no portfólio?

Sim. O case completo com prints desktop e mobile está em tlndesign.com.br/trabalhos/jornal-da-franca/.

Conclusion

O Jornal da Franca saiu de um legado frágil para um produto editorial em produção: redação com feedback claro, publicidade IAB responsável, utilidade regional e cutover sem derrubar o www. Se você precisa de um portal WordPress com essa profundidade, fale comigo.

#Google Ad Manager #Jornal da Franca #portal de notícias #WordPress
Tiago Luvizoto Neves

Tiago Luvizoto Neves

Desenvolvedor Full Stack, escrevendo sobre código, UX e web desde 2004