على هذه الصفحة:
- الإضافات والإعدادات المطلوبة
- استكشاف مخطط WPML GraphQL
- الاستعلام عن معلومات اللغة والترجمة
- تصفية اللغة
- الاستعلام عن البيانات من اللغات المثبتة
- استخدام WPML GraphQL مع Gatsby وACF
- المشكلات المعروفة
- الحصول على الدعم
الإضافات والإعدادات المطلوبة
للبدء، قم بتثبيت وتفعيل المكونات الإضافية التالية:
- ملحق WPML الأساسي والوظيفة الإضافية لترجمة النصوص
- البرنامج المساعد 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 لاسترداد البيانات الخاصة باللغة والترجمات المرتبطة بها.
- يمكنك إضافة حقل اللغة إلى الاستعلامات للإشارة إلى لغة أنواع المقالات، والتصنيفات، والتعليقات. يوفر هذا الاستعلام معلومات لغوية شاملة، مثل:
- رمز اللغة
- عناوين URL لعلم الدولة
- الاسم الأصلي للغة
- الاسم المترجم للغة
- عنوان URL للصفحة الرئيسية
- يمكنك استخدام حقل رمز اللغة لتجميع رمز اللغة للمنشورات ومصطلحات التصنيف والتعليقات، دون طلب أي تفاصيل أخرى خاصة باللغة.
- يمكنك استخدام حقل الترجمات لاسترداد ترجمات أنواع المقالات ومصطلحات التصنيف.
أدناه، يمكنك رؤية مثال لاستعلام عن المشاركات التي تتضمن هذه الحقول.
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 مزودًا بمرشح لغة ، والذي يتيح لك تحسين استفساراتك للحصول على بيانات اللغة الدقيقة التي تهمك.
يمكنك استخدام مرشح اللغة لتصفية المنشورات أو مصطلحات التصنيف أو التعليقات بناءً على لغة معينة. يمكنك طلب عقد لغة معينة عن طريق تضمين عامل تصفية اللغة في الاستعلام الخاص بك، ويمكنك أيضًا استرداد كافة العناصر، بغض النظر عن اللغة، باستخدام عامل تصفية اللغة مع تعيين القيمة على الكل.
إليك مثال استعلام يقوم بتصفية المنشورات حسب اللغة الثانوية، الإسبانية:
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 استعلامين يتيحان لك الاستعلام عن البيانات من اللغات المثبتة على موقعك:
- استعلام اللغات للحصول على جميع اللغات المسجلة مع البيانات المتعلقة بكل منها.
- استعلام اللغة الافتراضية لتعيين اللغة كلغة افتراضية، بالإضافة إلى البيانات ذات الصلة بها.
قد يكون هذا مفيدًا إذا كنت تريد، على سبيل المثال، إنشاء محوّل لغة.
لنفترض أننا نريد الاستعلام عن البيانات لجميع اللغات المثبتة. ولهذا الغرض نقوم بتشغيل الاستعلام التالي:
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، فيمكنك تقديم بياناته إلى موقع Gatsby. مع تثبيت WPML GraphQL ، يمكنك تقديم البيانات بلغات مختلفة وحتى استرداد معلومات اللغة.
لتوفير وظائف إضافية، يحتوي WP GraphQL على وظيفة إضافية Advanced Custom Fields (ACF). باستخدام هذه الإضافة إلى جانب ملحق ACF متعدد اللغات من WPML يمكنك تقديم كل من البيانات الأساسية وبيانات الحقول المخصصة بناءً على متطلبات لغة معينة.
لنفكر في سيناريو كمثال: لديك تثبيت Gatsby مع الحزمة الإضافيةgatsby-source-graphql، والتي تسترجع البيانات من الواجهة الخلفية WordPress. في هذه الواجهة الخلفية WordPress :
- لقد قمت بتثبيت WPML مع تعيين اللغة الإسبانية كلغة ثانوية.
- لقد قمت بتثبيت ACF وأضفت مجموعة حقول ( حقول بريدية ثابتة) تتضمن حقل نص ( عنوان فرعي ثابت ) للمشاركات.
- لقد ملأت بعض البيانات.
باستخدام استعلام GraphQL بسيط، يمكنك جمع هذه البيانات.
في مثال الاستعلام أدناه، نقوم باسترداد المنشورات من الواجهة الخلفية لـ 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
يمكنك أيضًا البحث في جميع المشكلات المعروفة، بما في ذلك المشكلات التي تم حلها سابقًا لهذه الإضافة.
الحصول على الدعم
إذا كنت بحاجة إلى مساعدة في استخدام WPML GraphQL مع WPGraphQL، فيرجى التوجه إلى منتدى الدعم الخاص بنا.