Auf dieser Seite:
- Erforderliche Plugins
- Was können Sie mit WPML GraphQL tun?
- Abfrage von Sprach- und Übersetzungsinformationen
- Sprache filtern
- Abfrage spezifischer Beiträge über Sprachen hinweg
- Abfrage von Daten aus installierten Sprachen
- Verwendung von WPML GraphQL mit Gatsby und ACF
- Starten Sie mit WPML GraphQL
- Benötigen Sie Hilfe?
Erforderliche Plugins
Um loszulegen, installiere und aktiviere die folgenden Plugins:
- WPGraphQL
- WPML
- WPML String Translation
- WPML GraphQL
Um mehrsprachige Felder aus dem ACF-Plugin in das WPGraphQL-Schema einzubeziehen, installieren Sie bitte auch:
- Advanced Custom Fields Multilingual (ACFML)
- WPGraphQL für Advanced Custom Fields
Was können Sie mit WPML GraphQL tun?
WPML GraphQL integriert sich in WPGraphQL, um Ihnen die Abfrage 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 zu erhalten
- Zugriff auf Übersetzungen für Beiträge, Taxonomien und Kommentare zu erhalten
- Ihre Abfragen nach Sprache zu filtern
- Spezifische Beiträge über Sprachen hinweg nach ihrer ID oder ihrem Slug abzufragen
Wie das folgende Bild zeigt, können Sie beispielsweise leicht eine Liste aller Beiträge auf Ihrer Website abrufen, komplett mit deren Sprachcodes, Slugs, URIs und Details zu ihren Übersetzungen.
Im Folgenden werden wir anhand einer mehrsprachigen Testseite zeigen, wie Sie WPML GraphQL zur Abfrage von Inhalten und deren Übersetzungen verwenden können.
Abfrage von Sprach- und Übersetzungsinformationen
Mit WPML GraphQL können Sie die Felder language und translation in Ihren Abfragen verwenden:
- Das
language
Feld ermöglicht es Ihnen, Details wie den Sprachcode, die URL der Landesflagge, den nativen Namen, den übersetzten Namen und die Homepage-URL für Beitragstypen, Taxonomien, Menüs, Menüelemente und Kommentare abzurufen. - Das
languageCode
Feld ruft den Sprachcode für Beiträge, Taxonomiebegriffe, Menüs, Menüelemente und Kommentare ohne zusätzliche Sprachdetails ab. - Das
translations
Feld ruft Übersetzungen für Beitragstypen und Taxonomiebegriffe ab.
Wenn Sie Kommentare abfragen, entsprechen die language
– und languageCode
-Felder der Sprache des Beitrags, 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 Beitrag-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
}
}
}
}
}
}
Die Ausführung dieser Abfrage liefert Sprach- und Übersetzungsinformationen 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 es Ihnen, den language-Filter zu verwenden, um:
- Beiträge, Taxonomiebegriffe, Menüs, Menüelemente oder Kommentare nach einer bestimmten Sprache zu filtern
- Inhalte in einer bestimmten Sprache abzurufen, indem Sie den Filter entsprechend einstellen
- Alle Inhalte, unabhängig von der Sprache, abzurufen, indem Sie den Filterwert auf all setzen
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 der gleichen Sprache folgen. Dies macht Ihre Abfragen konsistent und präzise.
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"
}
]
}
}
]
}
}
}
Abfrage spezifischer Beiträge über Sprachen hinweg
Mit WPMLGraphQL können Sie auch einzelne Beiträge in jeder Sprache anhand ihrer Beitrags-ID oder ihres Slugs abfragen.
Beispielsweise, wenn Sie einen Beitrag mit dem Titel ¡Hola mundo! (die spanische Übersetzung von Hello world!), mit einem Slug von hola-mundo und einer Beitrags-ID von 2 haben, können Sie folgende 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 werden korrekt die Beitragsdaten, einschließlich des Titels, des Slugs und der URI, für den Beitrag ¡Hola mundo! zurückgeben:
{
"data": {
"post": {
"title": "¡Hola mundo!",
"slug": "hola-mundo",
"uri": "/es/2018/07/05/hola-mundo/"
}
}
}
Abfrage von Daten aus installierten Sprachen
WPML GraphQL stellt zwei Abfragen zur Verfügung, um auf Daten über die auf Ihrer Website installierten Sprachen zuzugreifen:
- 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 entwickeln 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/"
}
]
}
}
Verwendung von WPML GraphQL mit Gatsby und ACF
Gatsby ermöglicht es Ihnen, Daten aus WordPress zu beziehen, und mit WPML GraphQL können Sie mehrsprachige Inhalte und sprachspezifische Daten für Ihre Gatsby-Website bereitstellen.
Wenn Sie WP GraphQL mit dem ACF-Plugin verwenden, erweitern WPML GraphQL und ACF Multilingual diese Funktionalität und ermöglichen es Ihnen, benutzerdefinierte Felddaten in verschiedenen Sprachen abzufragen.
Angenommen, Sie haben eine Gatsby-Installation mit dem gatsby-source-graphql Add-on-Paket, und Ihre WordPress-Website hat WPML (mit Spanisch als Zweitsprache) und ACF installiert.
Sie können mehrsprachige Beiträge mit ihren Titeln, Sprachcodes und benutzerdefinierten ACF-Feldern in Gatsby mithilfe einer einfachen GraphQL-Abfrage abrufen.
export const doQuery = graphql`
{
wordpress {
posts(where: {language: "en"}) {
nodes {
title
language {
code
}
postfields{
subtitle
}
translations {
title
language {
code
}
postfields{
subtitle
}
}
}
}
}
}
`;
Erste Schritte mit WPML GraphQL
Um WPML GraphQL zu verwenden, benötigen Sie einen WPML Multilingual CMS- oder WPML Multilingual Agency-Plan. Beide Pläne bieten Zugang zum WPML-Plugin und einer Vielzahl zusätzlicher Add-ons, die alle ohne zusätzliche Kosten enthalten sind.
Ermitteln Sie, welcher Plan für Ihre Website am besten geeignet ist.
Benötigen Sie Hilfe?
Wenn Sie Schwierigkeiten bei der Verwendung von WPML GraphQL haben, besuchen Sie unsere Seite Bekannte Probleme und Lösungen für Fehlerbehebungstipps.
Benötigen Sie weitere Hilfe? Reichen Sie ein Support-Ticket ein.