Auf dieser Seite
Was können Sie mit WPML GraphQL tun?
Abfrage von Sprach- und Übersetzungsinformationen
Abfrage spezifischer Beiträge über Sprachen hinweg
Abfrage von Daten aus installierten Sprachen
Auf dieser Seite
Was können Sie mit WPML GraphQL tun?
Abfrage von Sprach- und Übersetzungsinformationen
Abfrage spezifischer Beiträge über Sprachen hinweg
Abfrage von Daten aus installierten Sprachen
WPML GraphQL ist derzeit nicht mit WPGraphQL 2.0 kompatibel. Wir arbeiten aktiv daran, die Kompatibilität herzustellen, und werden Sie informieren, sobald diese verfügbar ist.
Um loszulegen, installiere und aktiviere die folgenden Plugins:
Um mehrsprachige Felder aus dem ACF-Plugin in das WPGraphQL-Schema einzubeziehen, installieren Sie bitte auch:
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:
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.
Mit WPML GraphQL können Sie die Felder language und translation in Ihren Abfragen verwenden:
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.languageCode
Feld ruft den Sprachcode für Beiträge, Taxonomiebegriffe, Menüs, Menüelemente und Kommentare ohne zusätzliche Sprachdetails ab.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"
}
]
}
}
]
}
]
}
}
}
WPML GraphQL ermöglicht es Ihnen, den language-Filter zu verwenden, 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 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"
}
]
}
}
]
}
}
}
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/"
}
}
}
WPML GraphQL stellt zwei Abfragen zur Verfügung, um auf Daten über die auf Ihrer Website installierten Sprachen zuzugreifen:
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/"
}
]
}
}
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
}
}
}
}
}
}
`;
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.
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.