דלג לתוכן דלג לסרגל צד

Home » תיעוד WPML » פרויקטים קשורים » WPML GraphQL – הוספת פונקציונליות רב-לשונית לסכימת WPGraphQL

WPML GraphQL – הוספת פונקציונליות רב-לשונית לסכימת WPGraphQL

WPML GraphQL מאפשר לך לבצע שאילתות, לסנן ולאחזר תוכן ותרגומים ספציפיים לשפה מסכימת WPGraphQL.

תכונות עיקריות

סנן תוכן לפי שפה, כולל פוסטים, טקסונומיות, תגובות, תפריטים ופריטי תפריט

הרחב את WPGraphQL עם שדות שפה כדי לאחזר נתונים ספציפיים מתוסף WPML

בצע שאילתות בנתונים בכל השפות המותקנות או התמקד בשפות ספציפיות

תוספים נדרשים

כדי להתחיל, התקן והפעל את התוספים הבאים:

  • WPGraphQL
  • WPML
  • WPML String Translation
  • WPML GraphQL

כדי לכלול שדות רב-לשוניים מתוסף ACF בסכימת WPGraphQL, התקן גם:

מה ניתן לעשות עם WPML GraphQL?

WPML GraphQL משתלב עם WPGraphQL כדי לאפשר לך לבצע שאילתות על תוכן רב-לשוני שנוצר עם WPML.

מתוך GraphQL ← GraphQL IDE , אתה יכול להשתמש ב- Query Composer כדי:

  • קבל מידע שפה עבור כל תוכן שאתה שואל
  • גש לתרגומים של פוסטים, טקסונומיות ותגובות
  • סנן את השאילתות שלך לפי שפה
  • בצע שאילתות על פוסטים ספציפיים בשפות שונות לפי המזהה או ה-slug שלהם

לדוגמה, כפי שמוצג בתמונה למטה, תוכל בקלות לאחזר רשימה של כל הפוסטים באתר שלך, כולל קודי השפה, ה-slugs, ה-URIs והפרטים של התרגומים שלהם.

שימוש בשדות השפה ב-Query Composer כדי לאחזר פוסטים בכל השפות

להלן, נשתמש באתר בדיקה רב-לשוני כדי להראות לך כיצד להשתמש ב-WPML GraphQL לשאילתת תוכן והתרגומים שלו.

שאילתת מידע שפה ותרגום

עם WPML GraphQL, תוכל להשתמש בשדות language ו-translation בשאילתות שלך:

  • השדה language מאפשר לך לאחזר פרטים כמו קוד השפה, כתובת URL של דגל המדינה, שם מקורי, שם מתורגם וכתובת URL של דף הבית עבור סוגי פוסטים, טקסונומיות, תפריטים, פריטי תפריט ותגובות.
  • השדה languageCode מקבל את קוד השפה עבור פוסטים, מונחי טקסונומיה, תפריטים, פריטי תפריט ותגובות ללא פרטי שפה נוספים.
  • השדה translations מאחזר תרגומים עבור סוגי פוסטים ומונחי טקסונומיה.

כאשר אתה שואל תגובות, השדות language ו-languageCode תואמים את השפה של הפוסט שאליו הן שייכות.

הנה דוגמה לשאילתה שמאחזרת פוסטים יחד עם הפרטים המשויכים שלהם, כולל ה-slug של הפוסט, ה-URI, קוד השפה, הקטגוריות וכל תרגום קיים:

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

הרצת שאילתה זו מחזירה מידע שפה ותרגום עבור כל פוסט, יחד עם פריטים מקושרים כמו קטגוריות. הקישורים עוקבים אוטומטית אחר השפה של הפריט ברמה העליונה (פוסטים במקרה זה):

{
  "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 מאפשר לך להשתמש במסנן language כדי:

  • לסנן פוסטים, מונחי טקסונומיה, תפריטים, פריטי תפריט או תגובות לפי שפה ספציפית
  • לאחזר תוכן בשפה מסוימת על ידי הגדרת המסנן בהתאם
  • לקבל את כל התוכן, ללא קשר לשפה, על ידי הגדרת ערך המסנן ל-all

WPML GraphQL תומך בקישורים, כך שכאשר אתה מסנן פריט ברמה עליונה כמו פוסט לפי שפה, כל הפריטים הקשורים, כגון קטגוריות ותגיות, יעקבו אוטומטית אחר אותה שפה. זה הופך את השאילתות שלך לעקביות ומדויקות.

הנה דוגמה לשאילתה שמאחזרת פוסטים בספרדית, כולל ה-slugs, ה-URIs והקטגוריות המקושרות שלהם:

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

הנה מה שהשאילתה מחזירה:

{
  "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"
  }
  ]
  }
  }
  ]
  }
  }
}

שאילתת פוסטים ספציפיים בשפות שונות

עם WPMLGraphQL, תוכל גם לבצע שאילתה על פוסטים בודדים בכל שפה לפי מזהה הפוסט או ה-slug שלהם.

לדוגמה, אם יש לך פוסט בשם ¡Hola mundo! (התרגום הספרדי של Hello world!), עם slug של hola-mundo ומזהה פוסט של 2, תוכל להשתמש בשאילתות הבאות כדי לאחזר את הפוסט:

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

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

שתי השאילתות יחזירו נכון את נתוני הפוסט, כולל הכותרת, ה-slug וה-URI, עבור הפוסט ¡Hola mundo!:

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

שאילתת נתונים משפות מותקנות

WPML GraphQL מספק שתי שאילתות לגישה לנתונים על השפות המותקנות באתר שלך:

  • שאילתת השפות מאחזרת את כל השפות הרשומות יחד עם נתונים רלוונטיים עבור כל אחת מהן
  • השאילתה defaultLanguage מאחזרת מידע על שפת ברירת המחדל שהוגדרה באתר שלך

שאילתות אלה יכולות להיות שימושיות אם אתה מעוניין לבנות תכונות כמו מחליף שפות.

לדוגמה, כדי לקבל נתונים עבור כל השפות המותקנות, תוכל להריץ את השאילתה הבאה:

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

השאילתה למעלה מניבה את התוצאה הבאה:

{
  "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 עם ACF

אם אתה משתמש ב-WPGraphQL עם תוסף ACF, התוספים WPML GraphQL ו-ACFML (ACF Multilingual) מרחיבים פונקציונליות זו. זה מאפשר לך לבצע שאילתות על נתוני שדות מותאמים אישית בשפות שונות.

WPGraphQL עם הרחבת ACF שלו חושף את דפי האפשרויות של ACF כאובייקטים שורש. יחד, התוספים WPML GraphQL ו-ACFML מוסיפים פרמטר שפה לשאילתות דף האפשרויות, המצפה לקוד שפה התואם לאחת מהשפות הפעילות באתר שלך (לדוגמה "de", "pt-pt"). זה מאפשר לך לבצע שאילתה על הנתונים בשפה ספציפית:

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

התחל לעבוד עם WPML GraphQL

כדי להשתמש ב-WPML GraphQL, אתה זקוק לתוכנית WPML Multilingual CMS או WPML Multilingual Agency. שתי התוכניות מספקות גישה לתוסף WPML ומגוון רחב של תוספים נוספים, כולם כלולים ללא עלות נוספת.

ראה איזו תוכנית הכי מתאימה לאתר שלך.

צריך עזרה?

אם אתה נתקל בבעיות בשימוש ב-WPML GraphQL, בקר בדף בעיות ידועות ופתרונות שלנו לקבלת טיפים לפתרון בעיות.

עדיין צריך עזרה? שלח כרטיס תמיכה .

עודכן
6 במאי 2026