Le sezioni sono gruppi riutilizzabili di blocchi Portable Text. Gli editor possono inserirle in qualsiasi campo Portable Text e poi modificare i blocchi inseriti senza cambiare la sezione di origine.
Usa le sezioni per punti di partenza ripetibili, come una call to action, la biografia di un autore o un avviso standard. Usa un’area widget quando un valore gestito in modo centralizzato deve aggiornarsi ovunque compaia.
Creare una sezione
Crea e gestisci le sezioni in Sections nell’amministrazione di EmDash.
-
Fai clic su New section e inserisci un titolo, uno slug e una descrizione facoltativa.
-
Aggiungi il contenuto che gli editor devono ricevere quando inseriscono la sezione.
-
Aggiungi parole chiave di ricerca per i termini che gli editor potrebbero usare quando cercano la sezione.
-
Salva la sezione.
Gli slug delle sezioni contengono lettere minuscole, numeri e trattini. Lo slug identifica la sezione nei template e nell’API; non è l’URL di una pagina pubblica.
Inserire una sezione nei contenuti
-
Posiziona il cursore in un campo Portable Text e digita
/section. -
Cerca la sezione per titolo, descrizione o parola chiave.
-
Seleziona la sezione per inserirne i blocchi nella posizione del cursore.
-
Modifica il contenuto inserito secondo necessità, poi salva la voce.
L’editor copia il Portable Text della sezione nella voce. Le modifiche successive alla sezione della libreria non cambiano le copie già inserite.
Fornire sezioni in un file seed
Un tema o uno starter può fornire sezioni nel proprio file seed. Assegna una _key stabile a ogni blocco e span Portable Text, come per gli altri contenuti seed.
Il file seed seguente aggiunge una sezione per la newsletter:
{
"version": "1",
"sections": [
{
"slug": "newsletter-signup",
"title": "Newsletter signup",
"description": "A short newsletter call to action",
"keywords": ["newsletter", "subscribe", "email"],
"source": "theme",
"content": [
{
"_type": "block",
"_key": "newsletter-heading",
"style": "h3",
"children": [
{
"_type": "span",
"_key": "newsletter-heading-text",
"text": "Receive new articles by email"
}
]
},
{
"_type": "block",
"_key": "newsletter-body",
"style": "normal",
"children": [
{
"_type": "span",
"_key": "newsletter-body-text",
"text": "Subscribe for occasional updates."
}
]
}
]
}
]
}
Esegui emdash seed --validate prima di applicare un file seed scritto a mano. Consulta File seed per le opzioni di applicazione e di gestione dei conflitti.
Le sezioni fornite da un tema usano la sorgente theme. Le sezioni create nell’amministrazione usano user, e i blocchi riutilizzabili di WordPress importati da EmDash usano import. Consulta Importazione di contenuti per il flusso di importazione.
Renderizzare una sezione in un template
La maggior parte dei siti renderizza il contenuto di una sezione come parte della voce in cui è stato copiato. Per renderizzare direttamente il valore corrente della libreria, recupera la sezione tramite il suo slug e passa il suo contenuto a PortableText.
Il componente seguente renderizza una sezione newsletter interrogata in modo centralizzato:
---
import { getSection } from "emdash";
import { PortableText } from "emdash/ui";
const section = await getSection("newsletter-signup");
---
{section && (
<aside aria-label={section.title}>
<PortableText value={section.content} />
</aside>
)}
Questo percorso di rendering diretto legge il valore della libreria a ogni rendering, quindi una modifica successiva alla sezione influisce su ogni punto in cui viene usato questo componente.
Il riferimento dell’API di runtime documenta le query delle sezioni e la paginazione. Per le modifiche programmatiche, autenticati con un token Bearer e aggiungi X-EmDash-Request: 1 a ogni richiesta che modifica lo stato. Consulta gli endpoint delle sezioni per i corpi delle richieste e le risposte.