Render WordPress Gutenberg dans Next.js — 1:1

localhost:3000/approximativement Acme À propos Docteurs Magasiner Personne à contacter (en milliers de dollars) rendue par NextPress A propos d’Acme Boutique familiale à Portland, Oregon — depuis 2014. Notre Histoire On a commencé dans un garage. Douze ans Plus tard, nous emballons toujours chaque commande. Le site que vous cherchez Où ? Edité en WordPress, servi par Suivant. Mêmes blocs, même thème, mêmes polices. Pas de double construction. Emballage à la main à Portland Chaque commande est expédiée dans les 48 heures. Postes neutres en carbone inclus. Lire la suite Du journal → Comment nous approvisionnons notre lin → Cinq ans d’ourlet mélangé → Notes de l’atelier, Printemps ’26

Plein Gutenberg, Pas de compromis.

Faites-le entrer. rendre la page.

Apportez les blocs WooCommerce avec vous.

  • WC Cart / Checkout / Mon Compte bloque rendu contre la session réelle de l’utilisateur.
  • Jeton de panier partagé entre l’application suivante et le bloc rendu via @woographql/session-utils.
  • Blocs de produits, filtres, mini-cart — même paramètre WPGraphQL, pas de surface parallèle REST.
  • Mutations de niveau bloc (ajouter au panier, appliquer un coupon) aller-retour à travers WooGraphQL.
app/[…uri]/page.tsx
import { Content, nextImageParser } from '@axistaylor/nextpress'
import { fetchContentByUri } from '@/lib/utils'
import { NextPressLink } from '@/components/NextPressLink'

// proxyByWCR (NextPress middleware) avance le jeton-cart
// cookie vers WordPress pour les URI correspondants, donc le rendueur WP
// lit la même session que votre application suivante.
// Mon Compte, et les blocs de produits tous rendus contre l'utilisateur
// panier réel — pas d'emballage avecSession requis.
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]}
    />
  )
}