contentful-tags-nextjs14
Author Cloudapp
E.G.

Next.js 14 - Arbeiten mit Contentful Tags und TailwindCss

7. Mai 2024
Inhaltsverzeichnis

Contentful bietet ein großartiges Tagging-System. In diesem Beitrag zeige ich Ihnen, wie wir es nutzen können, um Inhaltsseiten nach Tags zu gruppieren und neue "Tag-Seiten" zu erstellen, die Inhalte zu diesen Tags anzeigen. Wir fügen einen neuen Inhaltstyp und eine Route hinzu, um die Tags von Contentful abzurufen. Ich werde mich auf die Graphql-API von Contentful für das Abrufen von Inhalten verlassen und TailwindCss für das Styling verwenden.

Dieses Beispiel basiert auf dem ursprünglichen Projekt, das ich von Grund auf neu aufgebaut habe, und jeder Schritt wurde in einer Schritt-für-Schritt-Anleitung dargestellt. Sie finden die entsprechenden Geschichten hier -> https://www.cloudapp.dev/search/nextjs

In einer früheren story habe ich gezeigt, wie man Algolia als externe Daten-Engine für die Tag-Verwaltung nutzt und wie man eine hübsche Tag-Cloud auf dem Frontend erstellt.

Jetzt werde ich die leistungsstarken APIs von Contentful verwenden. Fangen wir an.

Der vollständige Code ist in diesem GitHub Repo. verfügbar.

Hier ist ein Spoiler für die fertige Website -> https://nextjs14-contentful-tags-cloudapp-devs-projects.vercel.app/

Neuer Inhaltstyp in Contentful

Ich beginne mit der Erstellung eines neuen Inhaltstyps „Tag-Seite“ in Contentful.

tag-page-Content-Model
tag-page-Content-Model

Dann erstellen wir drei neue Inhaltsdatensätze, die auf diesem Inhaltstyp basieren

Tag-Page-Content-records
Tag-Page-Content-records

Da wir einen neuen Menüpunkt im Kopfbereich hinzufügen möchten

Tag-navitem-header
Tag-navitem-header

Wir müssen einen neuen Inhaltseintrag „Tags“ vom Typ „Nav item“ hinzufügen und ihn dann zum HomeNav vom Typ „NavItemGroup“ hinzufügen, damit er im Frontend angezeigt wird.

HomeNav-NavItemGroup
HomeNav-NavItemGroup

Sobald wir die Vorbereitungen in Contentful abgeschlossen haben, können wir mit der Codierung beginnen. In einem ersten Schritt fügen wir eine neue Route hinzu, um die Tags von der Contentful GraphQL API abzurufen.

Neue Route “Tags” hinzugefügt

src/app/api/tags/route.ts

Neue Übersetzungen

Wir fügen neue Übersetzungen in den entsprechenden common.json-Dateien hinzu

src/app/i18n/locales/de-DE/common.json

src/app/i18n/locales/en-US/common.json

Neue Komponente für

src/components/contentful/ArticleContentTagPage.tsx

Neue GraphQL Abfragen

Da wir einen neuen Inhaltstyp in Contentful erstellt haben, müssen wir die Abfragen zu unserem Projekt hinzufügen:

src/lib/graphql/tagPage.graphql

src/lib/graphql/tagPageCollection.graphql

src/lib/graphql/tagPageCollectionSmall.graphql

Schema neu generieren (GraphQL)

Nun führen wir diesen Befehl aus

zum regenerieren der Dateien graphql.schema.json, graphql.schema.graphql, und sdk.ts im Ordner src/lib/__generated/.

Neues dynamisches Routensegment „Tag“

Die Codeschnipsel enthalten alle erforderlichen Importe, SEO-Logik, Schnittstellen usw.

src/app/[locale]/tags/[tag]/page.tsx

in dieser Sektion

holen wir uns die Daten von der neuen Api-Route, die die Daten von Contentful abruft. Und zu guter Letzt erstellen wir die Tag-Übersichtsseite -> src/app/[Gebietsschema]/tags/page.tsxx

Wenn Sie das Git Repo bereits geklont haben (hier ist der Link, wo Sie die URL finden), können Sie alle benötigten Pakete mit dem Befehl

Nach der Erstellung der benötigten ENV-Vars in „.env.local“

können Sie das Projekt mit dem Befehl

Das war's. Jetzt können Sie Ihre Beiträge dynamisch über Tags kategorisieren. Sie können so viele Kategorieseiten wie nötig hinzufügen und gute SEO-Inhalte erstellen. Vergessen Sie nicht, neue Tags zum Inhaltstyp „Kategorieseiten“ im Tag-Auswahlfeld hinzuzufügen.

Sie können alles, was Sie brauchen, auf meinem Medium-Account oder meinem Blog „Cloudapp.dev“ finden.

Dort gibt es für jeden Schritt einen Beitrag -> Zero to Hero ;-)

Cloudapp-dev und bevor Sie uns verlassen

Danke, dass Sie bis zum Ende gelesen haben. Noch eine Bitte bevor Sie gehen:

  • Wenn Ihnen gefallen hat was Sie gelesen haben oder wenn es Ihnen sogar geholfen hat, dann würden wir uns über einen "Clap" 👏 oder einen neuen Follower auf unseren Medium Account sehr freuen.

Verwandte Artikel