בעמוד זה:
- תוספים והתקנה נדרשים
- חקירת סכמת WPML GraphQL
- שאילתת מידע על שפה ותרגום
- סינון שפה
- שאילתת נתונים משפות מותקנות
- שימוש ב- WPML GraphQL עם Gatsby ו-ACF
- בעיות ידועות
- קבלת תמיכה
תוספים והתקנה נדרשים
כדי להתחיל, התקן והפעל את התוספים הבאים:
- תוסף הליבה של WPML והתוסף 'תרגום מחרוזות' (Strings Translation)
- תוסף WPGraphQL
- תוסף WPML GraphQL
אם אתה מפעיל אתר עם ACF או ACF Pro וברצונך לחשוף שדות רב לשוניים מהפלאגין ACF לסכימת WPGraphQL, התקן והפעל:
חקירת סכמת WPML GraphQL
WPML GraphQL משתלב עם WPGraphQL ומוסיף שדות ומסננים חדשים לסכימת WPGraphQL.
לאחר שתתקין את התוספים, תוכל לעבור אל GraphQL → GraphQL IDE ולהשתמש ב- Query Composer כדי לבצע שאילתות ולסנן בקלות תוכן בשפות שונות. זה כולל:
- קבלת מידע על השפה של אובייקטים שנשאלו
- קבלת תרגומים לאובייקטים כמו סוגי פוסטים, טקסונומיות והערות.
- סינון האובייקטים שנשאלו לפי שפה
כדוגמה, התמונה למטה מראה כיצד ניתן לאחזר רשימה של כל הפוסטים באתר WordPress , כולל קוד השפה, הקליעה וה-URI שלהם, כמו גם מידע דומה עבור כל תרגום של כל פוסט.
כדי להדגים כיצד WPML GraphQL עובד, הקמנו אתר עם אנגלית מוגדרת כשפת ברירת המחדל, וספרדית ואיטלקית כשפות משניות. לאורך דף התיעוד הזה, אנו משתמשים באתר בדיקה זה כדי לבצע שאילתות בפוסטים ובתרגומי הפוסטים שנוצרו על ידי WPML .
שאילתת מידע על שפה ותרגום
WPML GraphQL מאפשר לך לכלול שדות שפה ותרגומים בשאילתה שלך . זֶה מאפשר לך לעבוד עם צמתים ואלמנטים ב-GraphQL כדי לאחזר נתונים ספציפיים לשפה ותרגומים קשורים.
- אתה יכול להוסיף את שדה השפה לשאילתות כדי לציין את השפה של סוגי פוסטים, טקסונומיות והערות. שאילתה זו מספקת מידע שפה נרחב, כגון:
- קוד השפה
- כתובות אתרים של דגל מדינה
- השם המקומי של השפה
- השם המתורגם של השפה
- כתובת האתר של דף הבית
- אתה יכול להשתמש בשדה languageCode כדי לאסוף את קוד השפה עבור פוסטים, מונחי טקסונומיה והערות, מבלי לבקש פרטים אחרים ספציפיים לשפה.
- אתה יכול להשתמש בשדה התרגומים כדי לאחזר תרגומים של סוגי פוסטים ומונחי טקסונומיה.
להלן, תוכל לראות דוגמה לשאילתה עבור פוסטים הכוללת שדות אלה.
query Posts{ posts(where: {language: "en"}) { nodes { slug uri language { code } translations { slug uri language { code } } } } }
הפעלת שאילתה זו מחזירה מידע על שפה ותרגום עבור כל משאב.
{ "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.
הנה שאילתה לדוגמה שמסננת פוסטים לפי השפה המשנית שלנו, ספרדית:
query PostsES{ posts(where: {language: "es"}) { nodes { slug uri } } }
כפי שאתה יכול לראות, שאילתה זו מביאה את כל הפוסטים בספרדית.
{ "data": { "posts": { "nodes": [ { "slug": "adois-mundo", "uri": "/es/adios-mundo/" }, { "slug": "hola-mundo", "uri": "/es/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
המסגרת של Gatsby מאפשרת לך לאסוף נתונים ממקורות עורפיים שונים, כולל אתרי WordPress .
אם אתר WordPress שלך משתמש ב-WP GraphQL, אתה יכול להגיש את הנתונים שלו לאתר גטסבי. כאשר WPML GraphQL מותקן, אתה יכול להגיש נתונים בשפות שונות ואפילו לאחזר מידע שפה.
כדי לספק פונקציונליות נוספת, ל-WP GraphQL יש תוסף עבור שדות מותאמים אישית מתקדמים (ACF). על ידי שימוש בתוסף זה יחד עם הפלאגין ACF Multilingual מ- WPML , אתה יכול להגיש הן נתוני ליבה והן נתוני שדות מותאמים אישית על סמך דרישות שפה ספציפיות.
הבה נבחן תרחיש לדוגמה: יש לך התקנת Gatsby עם חבילת ההרחבה gatsby-source-graphql , המאחזרת נתונים מ-backend WordPress . בקצה האחורי הזה WordPress :
- מותקן לך WPML כאשר ספרדית מוגדרת כשפה המשנית.
- התקנת ACF והוספת קבוצת שדות (Slug postfields ) הכוללת שדה טקסט (Slug subtitle ) לפוסטים.
- איכלת נתונים מסוימים.
בעזרת שאילתת GraphQL פשוטה, אתה יכול לאסוף נתונים אלה.
בשאילתה לדוגמה להלן, אנו מאחזרים פוסטים מה-backend WordPress שבו השפה מוגדרת לאנגלית. עבור כל פוסט, נוכל לגשת לכותרת, לקוד השפה ולנתוני שדה ה-ACF שלו, כגון כותרת המשנה. בנוסף, אנו יכולים לאחזר תרגומים של הפוסט, כולל הכותרות שלהם, קודי השפה ונתוני שדות ACF.
export const doQuery = graphql` { wordpress { posts(where: {language: "en"}) { nodes { title language { code } postfields{ subtitle } translations { title language { code } postfields{ subtitle } } } } } } `;
בעיות ידועות
WPML עובד טוב עם תוסף זה, אבל לפעמים עלולות להיות בעיות קטנות שבהן אנו מטפלים. זה צפוי כיוון ששני התוספים מספקים עדכונים בתדירות גבוהה.
בעיות לא פתורות נוכחיות
- WPML GraphQL – No Results for Slug Queries in Secondary Languages
- WPML GraphQL – Cannot Retrieve Translated Author Metadata
ניתן גם לחפש את כל הבעיות הידועות iכולל בעיות שכבר נפתרו עבור תוסף זה..
קבלת תמיכה
אם אתה צריך עזרה בשימוש WPML GraphQL עם WPGraphQL, פנה לפורום התמיכה שלנו.