Auf dieser Seite
Was können Sie mit WPML GraphQL tun?
Sprach- und Übersetzungsdaten abfragen
Spezifische Beiträge über Sprachen hinweg abfragen
Abfrage von Daten aus installierten Sprachen
Auf dieser Seite
Was können Sie mit WPML GraphQL tun?
Sprach- und Übersetzungsdaten abfragen
Spezifische Beiträge über Sprachen hinweg abfragen
Abfrage von Daten aus installierten Sprachen
Installieren und aktivieren Sie zunächst die folgenden Plugins:
Um mehrsprachige Felder aus dem ACF-Plugin in das WPGraphQL-Schema aufzunehmen, installieren Sie auch:
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:
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.
Im Folgenden verwenden wir eine mehrsprachige Testseite, um Ihnen zu zeigen, wie Sie WPML GraphQL zum Abfragen von Inhalten und deren Übersetzungen verwenden.
Mit WPML GraphQL können Sie die Felder language und translation in Ihren Abfragen verwenden:
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.languageCode ruft den Sprachcode für Beiträge, Taxonomiebegriffe, Menüs, Menüpunkte und Kommentare ohne zusätzliche Sprachdetails ab.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"
}
]
}
}
]
}
]
}
}
}
WPML GraphQL ermöglicht Ihnen die Verwendung des language-Filters, um:
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"
}
]
}
}
]
}
}
}
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/"
}
}
}
WPML GraphQL bietet zwei Abfragen zum Zugriff auf Daten über die auf Ihrer Website installierten Sprachen:
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/"
}
]
}
}
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
}
}
}
}
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.
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.