Render WordPress Gutenberg em Next.js — 1:1

localhost:3000/sobre Acme Sobre Docs Loja Contacto renderizado por PróximaPress Sobre o Acme Loja familiar em Portland, Oregon — desde 2014. Nosso história Começámos numa garagem. Doze anos Mais tarde, ainda fazemos todas as encomendas. O sítio que procuras A sério? Editado em WordPress, servido por Próximo.Js. Mesmos blocos, mesmo tema, mesmas fontes. Nada de construção dupla. Acondicionamentos em Portland Todas as naves de ordem dentro de 48 horas. Postagem neutra de carbono incluído. Ler mais Do diário → Como nós fonte de nosso linho → Cinco anos de bainhas consertadas → Notas da oficina, Primavera 26

Full Gutenberg, Sem compromissos.

Liga-o. renderize a página.

Traga os blocos WooCommerce Contigo.

  • WC Cart / Checkout / Minha Conta blocos renderizar contra a sessão real do usuário.
  • Token de carrinho compartilhado entre o aplicativo Next e o bloco renderizado via @woographql/session-utils.
  • Blocos de produto, filtros, minicarte — mesmo ponto de avaliação WPGraphQL, sem superfície REST paralela.
  • Mutações de nível de bloco (adicionar ao carrinho, aplicar cupom) ida e volta através WooGraphQL.
app/[…uri]/page.tsx
import { Content, nextImageParser } from '@axistaylor/nextpress'
import { fetchContentByUri } from '@/lib/utils'
import { NextPressLink } from '@/components/NextPressLink'

// proxyByWCR (NextPress middleware) encaminha a caixa de ferramentas
// cookie para WordPress para correspondência URIs, então o renderizador WP
// lê a mesma sessão que o seu próximo app. WC Cart, Checkout,
// Minha conta, e blocos de produto todos renderizar contra o usuário
// carrinho real — não com embrulho Session necessário.
export default async function Page({
  params,
}: {
  params: Promise<{ uri?: string[] }>
}) {
  const { uri } = await params
  const path = '/' + (uri ?? []).join('/')
  const { content, contentCssClasses } = await fetchContentByUri(path)

  return (
    <Content
      content={content}
      contentCssClasses={contentCssClasses}
      instance="shop"
      linksAs={NextPressLink}
      parsers={[nextImageParser]}
    />
  )
}