דלג על ניווט

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 כדי:

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

לדוגמה, כפי שמראה התמונה למטה, אתה יכול בקלות להעלות רשימה של כל הפוסטים באתר שלך, עם קודי השפה שלהם, שבלולים, URIs ופרטים לתרגומים שלהם.

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

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

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

עם WPML GraphQL , אתה יכול להשתמש בשדות השפה והתרגום בשאילתות שלך:

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

כאשר אתה שואל הערות, הlanguage וlanguageCode שדות תואמים את שפת הפוסט שאליו הם שייכים.

להלן דוגמה לשאילתה המאחזרת פוסטים יחד עם הפרטים המשויכים אליהם, כולל שבלול הפוסט, 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 מאפשר לך להשתמש במסנן השפה כדי:

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

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

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

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, אתה יכול גם לבצע שאילתות על פוסטים בודדים בכל שפה לפי מזהה הפוסט או הקליעה שלהם.

לדוגמה, אם יש לך פוסט שכותרתו ¡Hola mundo! (התרגום הספרדי של Hello world !), עם שבלול של 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
  }
}

שתי השאילתות יחזירו בצורה נכונה את נתוני הפוסט, כולל הכותרת, הקליעה וה-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 עם Gatsby ו-ACF

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

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

לדוגמה, נניח שיש לך התקנת Gatsby עם חבילת התוסף gatsby-source-graphql , ובאתר WordPress שלך מותקן WPML (עם ספרדית כשפה משנית) ו-ACF.

אתה יכול לאחזר פוסטים רב לשוניים עם הכותרות שלהם, קודי השפה ושדות ACF מותאמים אישית ב-Gatsby באמצעות שאילתת GraphQL פשוטה.

export const doQuery = graphql`
  {
    wordpress {
      posts(where: {language: "en"}) {
        nodes {
          title
          language {
            code
          }
          postfields{
            subtitle
          }
          translations {
            title
            language {
              code
            }
            postfields{
              subtitle
            }
          }
        }
      }
    }
  }
`;

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

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

ראה איזו תוכנית היא הטובה ביותר עבור האתר שלך .

צריך עזרה?

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

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

תיעוד של WPML
מעודכן
נובמבר 28, 2024