דלג על ניווט

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

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

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

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

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

סינון תוכן בתוך סכימת Gatsby GraphQL

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

אחזר נתוני שפה עבור אובייקטים וצמתים

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

עובד עם ACF, ACFML ו-WPGraphQL עבור שדות מותאמים אישית מתקדמים

בעמוד זה:

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

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

  • תוסף הליבה של WPML והתוסף 'תרגום מחרוזות' (Strings Translation)
  • תוסף WPGraphQL
  • תוסף WPML GraphQL

אם אתה מפעיל אתר עם ACF או ACF Pro וברצונך לחשוף שדות רב לשוניים מהפלאגין ACF לסכימת WPGraphQL, התקן והפעל:

חקירת סכמת WPML GraphQL

WPML GraphQL משתלב עם WPGraphQL ומוסיף שדות ומסננים חדשים לסכימת WPGraphQL.

לאחר שתתקין את התוספים, תוכל לעבור אל GraphQL → GraphQL IDE ולהשתמש ב- Query Composer כדי לבצע שאילתות ולסנן בקלות תוכן בשפות שונות. זה כולל:

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

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

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

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

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

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

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

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

WPML GraphQL query for posts using the language and translations fields
query Posts{
  posts(where: {language: "en"}) {
    nodes {
      slug
      uri
      language {
        code
      }
      translations {
        slug
        uri
        language {
          code
        }
      }
    }
  }
}

הפעלת שאילתה זו מחזירה מידע על שפה ותרגום עבור כל משאב.

WPML GraphQL outcome of the query for posts using the language and translations fields
{
  "data": {
    "posts": {
      "nodes": [
        {
          "slug": "bye-world",
          "uri": "/bye-world/",
          "language": {
            "code": "en"
          },
          "translations": [
            {
              "slug": "adios-mundo",
              "uri": "/es/adios-mundo/",
              "language": {
                "code": "es"
              }
            },
            {
              "slug": "addio-mondo",
              "uri": "/it/addio-mondo/",
              "language": {
                "code": "it"
              }
            }
          ]
        },
        {
          "slug": "hello-world",
          "uri": "/hello-world/",
          "language": {
            "code": "en"
          },
          "translations": [
            {
              "slug": "hola-mundo",
              "uri": "/es/hola-mundo/",
              "language": {
                "code": "es"
              }
            },
            {
              "slug": "ciao-mondo",
              "uri": "/it/ciao-mondo/",
              "language": {
                "code": "it"
              }
            }
          ]
        }
      ]
    }
  }
}

סינון שפה

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

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

הנה שאילתה לדוגמה שמסננת פוסטים לפי השפה המשנית שלנו, ספרדית:

WPML GraphQL query using the language filter
query PostsES{
  posts(where: {language: "es"}) {
    nodes {
      slug
      uri
    }
  }
}

כפי שאתה יכול לראות, שאילתה זו מביאה את כל הפוסטים בספרדית.

WPML GraphQL outcome of the query using the language filter
{
  "data": {
    "posts": {
      "nodes": [
        {
          "slug": "adois-mundo",
          "uri": "/es/adios-mundo/"
        },
        {
          "slug": "hola-mundo",
          "uri": "/es/hola-mundo/"
        }
      ]
    }
  }
}

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

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

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

זה עשוי להיות שימושי אם אתה רוצה, למשל, לבנות מחליף שפות.

נניח שאנו רוצים לבצע שאילתות בנתונים עבור כל השפות המותקנות. לשם כך, אנו מריצים את השאילתה הבאה:

WPML GraphQL query to get all registered languages
query Languages {
  languages {
    code
    country_flag_url
    default_locale
    native_name
    translated_name
    url
  }
}

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

WPML GraphQL outcome of the query to get all registered languages
{
  "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

המסגרת של Gatsby מאפשרת לך לאסוף נתונים ממקורות עורפיים שונים, כולל אתרי WordPress .

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

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

הבה נבחן תרחיש לדוגמה: יש לך התקנת Gatsby עם חבילת התוספים gatsby-source-graphql , המאחזרת נתונים מ-backend של WordPress . בקצה האחורי הזה WordPress :

  1. מותקן לך WPML כאשר ספרדית מוגדרת כשפה המשנית.
  2. התקנת ACF והוספת קבוצת שדות (Slug postfields ) הכוללת שדה טקסט (Slug subtitle ) לפוסטים.
  3. איכלת נתונים מסוימים.

בעזרת שאילתת GraphQL פשוטה, אתה יכול לאסוף נתונים אלה.

בשאילתה לדוגמה להלן, אנו מאחזרים פוסטים מה-backend WordPress שבו השפה מוגדרת לאנגלית. עבור כל פוסט, נוכל לגשת לכותרת, לקוד השפה ולנתוני שדה ה-ACF שלו, כגון כותרת המשנה. בנוסף, אנו יכולים לאחזר תרגומים של הפוסט, כולל הכותרות שלהם, קודי השפה ונתוני שדות ACF.

WPML GraphQL example query for language-specific information and ACF field data
export const doQuery = graphql`
  {
    wordpress {
      posts(where: {language: "en"}) {
        nodes {
          title
          language {
            code
          }
          postfields{
            subtitle
          }
          translations {
            title
            language {
              code
            }
            postfields{
              subtitle
            }
          }
        }
      }
    }
  }
`;

בעיות ידועות

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

בעיות לא פתורות נוכחיות

ניתן גם לחפש את כל הבעיות הידועות iכולל בעיות שכבר נפתרו עבור תוסף זה..

קבלת תמיכה

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

מעודכן
ינואר 18, 2024