Render WordPress Gutenberg in Next.js — 1:1

localhost:3000/circa Acme Informazioni Docs Negozio Contatto reso da ProssimoPress Informazioni su Acme Negozio di famiglia a Portland, Oregon — dal 2014. Il nostro storia Abbiamo iniziato in un garage. Dodici anni più tardi, ancora hand-pack ogni ordine. Il sito che stai cercando A? Modificato in WordPress, servito da Il prossimo. Stessi blocchi, stesso tema, stessi caratteri. Niente doppio. Confezionato a mano a Portland Ogni ordine navi entro 48 ore. Carbon-neutral postage incluso. Leggi tutto Dal diario → Come proviamo la nostra biancheria → Cinque anni di orli cuciti → Note del workshop, Primavera 26

Full Gutenberg, Nessun compromesso.

Infilalo dentro, rendere la pagina.

Portare i blocchi WooCommerce con te.

  • WC Cart / Checkout / I blocchi del mio account rendono la sessione reale dell’utente.
  • Token del carrello condiviso tra l’app Next e il blocco reso via @woographql/session-utils.
  • Blocchi di prodotto, filtri, mini-cart — stesso endpoint WPGraphQL, nessuna superficie REST parallela.
  • Mutazioni a livello di blocco (add to cart, applicare coupon) andata e ritorno attraverso WooGraphQL.
app/[…uri]/page.tsx
import { Content, nextImageParser } from '@axistaylor/nextpress'
import { fetchContentByUri } from '@/lib/utils'
import { NextPressLink } from '@/components/NextPressLink'

// proxyByWCR (NextPress middleware) inoltra il cart-token
// cookie a WordPress per URI corrispondenti, quindi il renderer WP
// legge la stessa sessione della tua prossima app. WC Cart, Checkout,
// Il mio account e il prodotto blocca tutti i render contro l'utente
// vero carrello — no conInvolucro di isolamento richiesto.
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]}
    />
  )
}