Zum Inhalt springen Zur Seitenleiste springen

Home » WPML-Dokumentation » Verwandte Projekte » WPML GraphQL – Mehrsprachige Funktionalität zum WPGraphQL-Schema hinzufügen

WPML GraphQL – Mehrsprachige Funktionalität zum WPGraphQL-Schema hinzufügen

Mit WPML GraphQL können Sie sprachspezifische Inhalte und Übersetzungen aus dem WPGraphQL-Schema abfragen, filtern und abrufen.

Hauptfunktionen

Inhalte nach Sprache filtern, einschließlich Beiträge, Taxonomien, Kommentare, Menüs und Menüpunkte

WPGraphQL mit Sprachfeldern erweitern, um spezifische Daten aus dem WPML-Plugin abzurufen

Fragen Sie Daten über alle installierten Sprachen hinweg ab oder konzentrieren Sie sich auf bestimmte Sprachen

Erforderliche Plugins

Installieren und aktivieren Sie zunächst die folgenden Plugins:

  • WPGraphQL
  • WPML
  • WPML String Translation
  • WPML GraphQL

Um mehrsprachige Felder aus dem ACF-Plugin in das WPGraphQL-Schema aufzunehmen, installieren Sie auch:

Was können Sie mit WPML GraphQL tun?

WPML GraphQL integriert sich in WPGraphQL, um Ihnen das Abfragen mehrsprachiger Inhalte zu ermöglichen, die mit WPML erstellt wurden.

In GraphQL → GraphQL IDE können Sie den Query Composer verwenden, um:

  • Sprachinformationen für alle abgefragten Inhalte erhalten
  • Auf Übersetzungen für Beiträge, Taxonomien und Kommentare zugreifen
  • Ihre Abfragen nach Sprache zu filtern
  • Spezifische Beiträge über Sprachen hinweg nach ihrer ID oder ihrem Slug abfragen

Wie das folgende Bild zeigt, können Sie beispielsweise ganz einfach eine Liste aller Beiträge auf Ihrer Website abrufen, komplett mit ihren Sprachcodes, Slugs, URIs und Details zu ihren Übersetzungen.

Verwendung der Sprachfelder im Query Composer, um Beiträge in allen Sprachen abzurufen

Im Folgenden verwenden wir eine mehrsprachige Testseite, um Ihnen zu zeigen, wie Sie WPML GraphQL zum Abfragen von Inhalten und deren Übersetzungen verwenden.

Sprach- und Übersetzungsdaten abfragen

Mit WPML GraphQL können Sie die Felder language und translation in Ihren Abfragen verwenden:

  • Das Feld language ermöglicht Ihnen das Abrufen von Details wie Sprachcode, Länderflaggen-URL, nativem Namen, übersetztem Namen und Homepage-URL für Beitragstypen, Taxonomien, Menüs, Menüpunkte und Kommentare.
  • Das Feld languageCode ruft den Sprachcode für Beiträge, Taxonomiebegriffe, Menüs, Menüpunkte und Kommentare ohne zusätzliche Sprachdetails ab.
  • Das Feld translations ruft Übersetzungen für Beitragstypen und Taxonomiebegriffe ab.

Wenn Sie Kommentare abfragen, stimmen die Felder language und languageCode mit der Sprache des Beitrags überein, zu dem sie gehören.

Hier ist ein Beispiel für eine Abfrage, die Beiträge zusammen mit ihren zugehörigen Details abruft, einschließlich des Beitrags-Slugs, der URI, des Sprachcodes, der Kategorien und aller vorhandenen Übersetzungen:

query Posts{
  posts(where: {language: "en"}) {
  nodes {
  slug
  uri
  language {
  code
  }
  categories {
  nodes {
  name
  }
  }
  translations {
  slug
  uri
  language {
  code
  }
  categories {
  nodes {
  name
  }
  }
  }
  }
  }
}

Das Ausführen dieser Abfrage liefert Sprach- und Übersetzungsdaten für jeden Beitrag, zusammen mit verbundenen Elementen wie Kategorien. Die Verbindungen folgen automatisch der Sprache des übergeordneten Elements (in diesem Fall Beiträge):

{
  "data": {
  "posts": {
  "nodes": [
  {
  "slug": "bye-world",
  "uri": "/2023/05/18/bye-world/",
  "language": {
  "code": "en"
  },
  "categories": {
  "nodes": [
  {
  "name": "End of the day"
  },
  {
  "name": "Greetings"
  }
  ]
  },
  "translations": [
  {
  "slug": "adios-mundo",
  "uri": "/es/2023/05/18/adios-mundo/",
  "language": {
  "code": "es"
  },
  "categories": {
  "nodes": [
  {
  "name": "Fin del día"
  },
  {
  "name": "Saludos"
  }
  ]
  }
  },
  {
  "slug": "tchau-mundo",
  "uri": "/pt-pt/2023/05/18/tchau-mundo/",
  "language": {
  "code": "pt-pt"
  },
  "categories": {
  "nodes": [
  {
  "name": "Fim do dia"
  },
  {
  "name": "Saudações"
  }
  ]
  }
  }
  ]
  },
  {
  "slug": "hello-world",
  "uri": "/2018/07/05/hello-world/",
  "language": {
  "code": "en"
  },
  "categories": {
  "nodes": [
  {
  "name": "Greetings"
  },
  {
  "name": "Start of the day"
  }
  ]
  },
  "translations": [
  {
  "slug": "hola-mundo",
  "uri": "/es/2018/07/05/hola-mundo/",
  "language": {
  "code": "es"
  },
  "categories": {
  "nodes": [
  {
  "name": "Inicio del día"
  },
  {
  "name": "Saludos"
  }
  ]
  }
  },
  {
  "slug": "ola-mundo",
  "uri": "/pt-pt/2018/07/05/ola-mundo/",
  "language": {
  "code": "pt-pt"
  },
  "categories": {
  "nodes": [
  {
  "name": "Começo do dia"
  },
  {
  "name": "Saudações"
  }
  ]
  }
  }
  ]
  }
  ]
  }
  }
}

Sprache filtern

WPML GraphQL ermöglicht Ihnen die Verwendung des language-Filters, um:

  • Beiträge, Taxonomiebegriffe, Menüs, Menüpunkte oder Kommentare nach einer bestimmten Sprache zu filtern
  • Inhalte in einer bestimmten Sprache abzurufen, indem der Filter entsprechend eingestellt wird
  • Alle Inhalte, unabhängig von der Sprache, abzurufen, indem der Filterwert auf all gesetzt wird

WPML GraphQL unterstützt Verbindungen, sodass beim Filtern eines übergeordneten Elements wie eines Beitrags nach Sprache alle zugehörigen Elemente, wie Kategorien und Tags, automatisch derselben Sprache folgen. Dies macht Ihre Abfragen konsistent und genau.

Hier ist ein Beispiel für eine Abfrage, die Beiträge auf Spanisch abruft, einschließlich ihrer Slugs, URIs und verbundenen Kategorien:

query PostsES{
  posts(where: {language: "es"}) {
  nodes {
  slug
  uri
  categories {
  nodes {
  name
  }
  }
  }
  }
}

Hier ist das Ergebnis der Abfrage:

{
  "data": {
  "posts": {
  "nodes": [
  {
  "slug": "adios-mundo",
  "uri": "/es/2023/05/18/adios-mundo/",
  "categories": {
  "nodes": [
  {
  "name": "Fin del día"
  },
  {
  "name": "Saludos"
  }
  ]
  }
  },
  {
  "slug": "hola-mundo",
  "uri": "/es/2018/07/05/hola-mundo/",
  "categories": {
  "nodes": [
  {
  "name": "Inicio del día"
  },
  {
  "name": "Saludos"
  }
  ]
  }
  }
  ]
  }
  }
}

Spezifische Beiträge über Sprachen hinweg abfragen

Mit WPML GraphQL können Sie auch einzelne Beiträge in jeder Sprache anhand ihrer Beitrags-ID oder ihres Slugs abfragen.

Wenn Sie beispielsweise einen Beitrag mit dem Titel ¡Hola mundo! (die spanische Übersetzung von Hello world!) mit dem Slug hola-mundo und der Beitrags-ID 2 haben, können Sie die folgenden Abfragen verwenden, um den Beitrag abzurufen:

query PostBySlug {
  post(id: "hola-mundo", idType: SLUG) {
  title
  slug
  uri
  }
}

query PostById {
  post(id: "2", idType: DATABASE_ID) {
  title
  slug
  uri
  }
}

Beide Abfragen geben die Beitragsdaten, einschließlich Titel, Slug und URI, für den Beitrag ¡Hola mundo! korrekt zurück:

{
  "data": {
  "post": {
  "title": "¡Hola mundo!",
  "slug": "hola-mundo",
  "uri": "/es/2018/07/05/hola-mundo/"
  }
  }
}

Abfrage von Daten aus installierten Sprachen

WPML GraphQL bietet zwei Abfragen zum Zugriff auf Daten über die auf Ihrer Website installierten Sprachen:

  • Die Abfrage languages ruft alle registrierten Sprachen zusammen mit relevanten Daten für jede ab
  • Die Abfrage defaultLanguage ruft Informationen über die auf Ihrer Website eingestellte Standardsprache ab

Diese Abfragen können hilfreich sein, wenn Sie Funktionen wie einen Sprachumschalter erstellen möchten.

Um beispielsweise Daten für alle installierten Sprachen zu erhalten, können Sie die folgende Abfrage ausführen:

query Languages {
  languages {
  code
  country_flag_url
  default_locale
  native_name
  translated_name
  url
  }
}

Die obige Abfrage ergibt das folgende Ergebnis:

{
  "data": {
  "languages": [
  {
  "code": "en",
  "country_flag_url": "http://site.com/wp-content/plugins/sitepress-multilingual-cms-release/res/flags/en.svg",
  "default_locale": "en_US",
  "native_name": "English",
  "translated_name": "English",
  "url": "http://site.com"
  },
  {
  "code": "es",
  "country_flag_url": "http://site.com/wp-content/plugins/sitepress-multilingual-cms-release/res/flags/es.svg",
  "default_locale": "es_ES",
  "native_name": "Español",
  "translated_name": "Spanish",
  "url": "http://site.com/es/"
  },
  {
  "code": "it",
  "country_flag_url": "http://site.com/wp-content/plugins/sitepress-multilingual-cms-release/res/flags/it.svg",
  "default_locale": "it_IT",
  "native_name": "Italiano",
  "translated_name": "Italian",
  "url": "http://site.com/it/"
  }
  ]
  }
}

WPML GraphQL mit ACF verwenden

Wenn Sie WPGraphQL mit dem ACF-Plugin verwenden, erweitern WPML GraphQL und die ACFML (Advanced Custom Fields Multilingual)-Add-ons diese Funktionalität. Dies ermöglicht Ihnen, benutzerdefinierte Felddaten in verschiedenen Sprachen abzufragen.

WPGraphQL mit seiner ACF-Erweiterung stellt ACF-Optionsseiten als Root-Objekte bereit. Zusammen fügen WPML GraphQL und die ACFML-Add-ons den Optionsseiten-Abfragen einen Sprachparameter hinzu, der einen Sprachcode erwartet, der einer der aktiven Sprachen auf Ihrer Website entspricht (z. B. „de“, „pt-pt“). Dies ermöglicht Ihnen, die Daten in einer bestimmten Sprache abzufragen:

query NewQuery {
  myOptionPage(language: "de") {
  addressFieldGroup {
  addressTitle
  repeaterAddressDetails {
  addressDetails
  }
  }
  }
}

Erste Schritte mit WPML GraphQL

Um WPML GraphQL nutzen zu können, benötigen Sie einen WPML Multilingual CMS- oder WPML Multilingual Agency-Plan. Beide Pläne bieten Zugang zum WPML-Plugin und einer breiten Palette zusätzlicher Add-ons, die alle ohne Aufpreis enthalten sind.

Sehen Sie, welcher Plan am besten für Ihre Website geeignet ist.

Benötigen Sie Hilfe?

Wenn Sie Probleme bei der Verwendung von WPML GraphQL haben, besuchen Sie unsere Seite Bekannte Probleme und Lösungen für Tipps zur Fehlerbehebung.

Benötigen Sie weitere Hilfe? Reichen Sie ein Support-Ticket ein.

Aktualisiert
Mai 6, 2026