كيفية جعل ElasticPress يعرض النتائج الصحيحة لكل لغة
تعلّم كيفية إعداد البحث متعدد اللغات على موقع WordPress يعمل بإضافتي WPML وElasticPress. تبني إضافة التوافق WPML ElasticPress فهرس Elasticsearch منفصل لكل لغة في موقعك، بحيث يحصل الزائر الذي يبحث من النسخة الفرنسية على نتائج فرنسية – ولا تختلط أبداً بالنتائج الإنجليزية أو اليابانية. تغطي هذه الصفحة الإعداد، والمزامنة لكل لغة، والأهم من ذلك، كيفية التحقق من أن البحث يعرض النتائج الصحيحة في كل لغة.
لا يوجد شيء لترجمته في تكامل ElasticPress. تجعل إضافة التوافق ElasticPress يعرض النتائج الصحيحة لغوياً تلقائياً؛ وتتمثل مهمتك في تثبيت المكونات، وتشغيل المزامنة الأولية، والتأكد من أن النتائج تبدو صحيحة.
قبل البدء
ثبّت وفعّل هذه الإضافات على نفس الموقع:
- ElasticPress. الإضافة المجانية مفتوحة المصدر من 10up، والمتاحة على WordPress.org.
- نواة WPML بالإضافة إلى WPML ترجمة النصوص.
- WPML ElasticPress. إضافة التوافق. نزّلها من صفحة التنزيلات في حساب WPML الخاص بك.
تحتاج أيضاً إلى نقطة نهاية Elasticsearch: مستضافة ذاتياً، أو خدمة مُدارة مثل ElasticPress.io أو Elastic Cloud أو AWS OpenSearch. اضبط إعدادات ElasticPress مع مضيف Elasticsearch الخاص بك وتأكد من نجاح الفهرسة على موقع أحادي اللغة قبل إضافة طبقة WPML.
اضبط إعدادات لغات WPML قبل تشغيل المزامنة الأولى.
كيفية عمل الفهرسة لكل لغة
تنشئ إضافة WPML ElasticPress فهرس Elasticsearch منفصلاً لكل لغة في موقعك. ويحتوي فهرس كل لغة على:
- الترجمات إلى تلك اللغة لكل نوع منشور قابل للترجمة.
- منشورات اللغة الافتراضية لأي نوع منشور مضبوط على العودة إلى اللغة الافتراضية عند عدم وجود ترجمة له.
- نسخ من المنشورات غير القابلة للترجمة. يتضمن فهرس كل لغة هذه النسخ لتتمكن من الظهور في نتائج البحث بغض النظر عن لغة الزائر.
يتم تحليل كل مستند في فهرس اللغة بتلك اللغة. وتُعد كلمات التوقف، والاستخراج الجذري، والاختصارات، ومعالجة الجمع وصيغ الأفعال جميعها خاصة باللغة. وهذا ما يجعل البحث الفرنسي يتطابق مع الجذور الفرنسية والبحث الياباني يتطابق مع الصرف الياباني؛ وبدون التحليل الخاص بكل لغة، سيُطبق محرك البحث قواعد لغة واحدة على نصوص كل اللغات الأخرى.
بالنسبة لبحث كل زائر، توجّه WPML ElasticPress الاستعلام إلى فهرس اللغة المطابق. وتكون مجموعة النتائج مصفّاة بالفعل للغة الصحيحة قبل بدء ترتيب الملاءمة.
تشغيل المزامنة الأولية
مع تفعيل الإضافات الأربع وضبط نقطة نهاية Elasticsearch في ElasticPress، شغّل المزامنة الأولية:
- افتح ElasticPress > Sync في لوحة تحكم WordPress.
- انقر على Start Sync.
تُطلق إضافة WPML ElasticPress مزامنة واحدة لكل لغة وتبني الفهارس الخاصة بكل لغة واحداً تلو الآخر. وقد يستغرق ذلك بضع ساعات في المواقع الكبيرة؛ وتبلّغ الصفحة عن التقدم أثناء تشغيل المزامنة.
إذا كنت تجري تحديثاً من WPML ElasticPress 1.0 إلى 2.0 أو الأحدث، فأعد الفهرسة. لقد تغيّر تنسيق الفهرس عندما قدّم الإصدار 2.0 الفهارس الخاصة بكل لغة.
بعد المزامنة الأولية، تتدفق تحديثات المحتوى إلى الفهرس الصحيح تلقائياً. وكلما قمت بإنشاء مقالة أو تعديلها أو حذفها، تُحدّث WPML ElasticPress فهرس اللغة المقابل في الخلفية بناءً على لغة تلك المقالة أو إعداد الترجمة الخاص بنوع المنشور التابع لها.
فهرسة لغات معينة باستخدام WP-CLI
بالنسبة للمواقع الكبيرة، أو المهام المجدولة، أو نصوص النشر البرمجية، أو أي سير عمل لا يكون فيه استخدام واجهة مستخدم لوحة التحكم خياراً متاحاً، توفّر إضافة WPML ElasticPress أمر WP-CLI (wp wpml_elasticpress sync) الذي يغلّف مزامنة CLI الخاصة بإضافة ElasticPress ويضيف علامة --post-lang لاختيار اللغة.
تشغيل المزامنة الأولية للمنشورات الإنجليزية فقط:
wp wpml_elasticpress sync --setup --post-type=post --post-lang=en
تمسح العلامة --setup الفهارس الحالية قبل إعادة بنائها. وبعد هذا الأمر، سيعرض البحث الإنجليزي نتائج إنجليزية؛ ولن تعرض عمليات البحث من اللغات الأخرى أي شيء لأن فهارسها لم تُبنَ بعد.
إضافة لغة ثانية دون مسح الفهارس الحالية:
wp wpml_elasticpress sync --post-type=post --post-lang=fr
كرّر ذلك لكل لغة إضافية. احذف --setup لتبقى اللغات المفهرسة مسبقاً في مكانها.
مزامنة عدة لغات في عملية تشغيل واحدة:
wp wpml_elasticpress sync --post-lang=en,es
ضبط حجم الدفعة إذا كانت الذاكرة محدودة:
wp wpml_elasticpress sync --per-page=200
حجم الدفعة الافتراضي هو 350؛ ويساعد خفضه في الخوادم ذات الذاكرة المحدودة.
إعادة بناء كل فهرس من الصفر:
wp wpml_elasticpress sync --setup
يمسح هذا الأمر كل فهرس لغة ويعيد بناءها جميعاً. استخدمه عندما يبدو أن هناك خطأ ما عبر جميع اللغات أو بعد ترقية رئيسية.
كيفية التحقق من أن عمليات بحث ElasticPress تعرض المحتوى باللغة الصحيحة
تُعد المزامنة الفنية مباشرة؛ وتكمن قيمة هذه الصفحة في التحقق. نفّذ هذه الفحوصات بعد اكتمال المزامنة الأولية، ومرة أخرى في أي وقت تقوم فيه بتغيير المحتوى أو الإعدادات التي تؤثر على سلوك البحث.
1. البحث يعرض نتائج من نفس اللغة من كل لغة
من الواجهة الأمامية، بدّل مبدل اللغة إلى كل لغة على التوالي وابحث عن مصطلح تعرف أنه موجود في شكل مترجم.
- نجاح. تُدرج صفحة النتائج المنشورات بتلك اللغة فقط.
- فشل. تظهر نتائج من لغات أخرى جنباً إلى جنب مع التطابقات من نفس اللغة. قد لا تكون المزامنة قد اكتملت لتلك اللغة – تحقق من ElasticPress > Sync بحثاً عن أخطاء وأعد تشغيل أمر WP-CLI الخاص باللغة.
2. المحتوى الموجود باللغة المصدر فقط لا يعرض أي نتائج في اللغات الأخرى
اختر مقالة موجودة فقط في لغتك الافتراضية – ولا توجد لها ترجمة في اللغات الأخرى على الموقع. ومن نسخة الموقع بغير اللغة الافتراضية، ابحث عن عبارة من تلك المقالة.
- نجاح. لا توجد نتائج. لم تُترجم المقالة إلى لغة الزائر، لذا لا ينبغي أن تظهر.
- فشل. تظهر المقالة في النتائج. يعني هذا عادةً أن نوع المنشور مضبوط على العودة إلى اللغة الافتراضية في WPML > إعدادات > ترجمة أنواع المنشورات. هذا إعداد على مستوى WPML، وليس خطأً برمجياً. إذا لم تكن تقصد العودة إلى اللغة الافتراضية، فغيّر الإعداد.
3. المنشورات ذات الصلة تبقى بنفس اللغة
افتح مقالة مترجمة في الواجهة الأمامية. يجب أن تُدرج ودجت Related Posts المنشورات الأخرى بنفس اللغة فقط.
- نجاح. ترتبط كل مقالة ذات صلة بمحتوى بنفس لغة الصفحة الحالية.
- فشل. تظهر منشورات ذات صلة من لغات أخرى. تأكد من تفعيل ميزة Related Posts في ElasticPress > Features ومن انتهاء مزامنة فهرس اللغة للغة الحالية.
4. بحث المستندات يُصفّي النتائج حسب اللغة
إذا كانت ميزة Documents مفعّلة في ElasticPress: ارفع ملف PDF مترجماً إلى نسخة المقالة باللغة المصدر، ثم ارفع ملف PDF بلغة مختلفة إلى ترجمتها. ابحث عن عبارة تظهر فقط في ملف PDF المترجم.
- نجاح. يعرض البحث من الواجهة الأمامية ذات اللغة المطابقة ملف PDF الصحيح؛ ولا يعرض بحث اللغة المصدر ملف PDF المترجم والعكس صحيح.
- فشل. تظهر ملفات PDF من لغات أخرى في النتائج. أعد المزامنة بعد تفعيل ميزة Documents. يعيد الأمر
wp wpml_elasticpress sync --setupبناء كل فهرس مع فهرسة المستندات.
5. عمليات بحث الواجهة الخلفية (المصطلحات، التعليقات، المستخدمون) تُصفّي النتائج حسب اللغة
إذا قمت بتفعيل ميزات Terms أو Comments أو Users في ElasticPress > Features، فابحث عنها من لوحة تحكم WordPress وتأكد من تصفية النتائج حسب لغة لوحة التحكم الحالية. ويؤثر هذا على المستخدمين الذين يبحثون في الواجهة الخلفية لموقع متعدد اللغات.
6. مزامنة المواقع المتعددة لا تمسح فهارس المواقع الشقيقة
إذا كنت تشغّل WPML وElasticPress على شبكة متعددة المواقع، فشغّل مزامنة فهرس على أحد المواقع ثم تحقق من المواقع الأخرى في الشبكة. يجب أن تظل فهارسها سليمة.
- نجاح. تترك فهرسة موقع واحد فهارس المواقع الشقيقة دون تغيير.
- فشل. الفهارس الشقيقة فارغة. توقف، وأعد تشغيل عمليات المزامنة على المواقع المتأثرة، وأبلغ فريق دعم WPML بالمشكلة ليتمكنوا من تأكيد ما إذا كنت تواجه مشكلة تاريخية في المواقع المتعددة أم مشكلة جديدة.
إذا نجح كل فحص أعلاه، فإن بحثك متعدد اللغات يعمل كما هو مصمم.
ميزات ElasticPress المدعومة
تجعل إضافة WPML ElasticPress حالياً ميزات ElasticPress التالية واعية باللغة:
- Post Search. البحث في الواجهة الأمامية عبر المقالات، والصفحات، وأنواع المنشورات المخصصة.
- Related Posts. تُصفّي ودجت المنشورات ذات الصلة النتائج إلى التطابقات من نفس اللغة.
- Documents. البحث داخل ملفات PDF المرفقة، و
.docx، و.pptx، وأنواع الملفات الأخرى. - Terms, Comments, and Users. عمليات بحث الواجهة الخلفية.
ميزات البحث الخاصة بـ WooCommerce في ElasticPress (استكشاف المنتجات، وتصفية المنتجات متعددة الأوجه، والبحث الفوري عن المنتجات عبر الكتالوجات) ليست متعددة اللغات حالياً. وتوجد التغطية متعددة اللغات لبحث WooCommerce على خارطة طريق WPML؛ وحتى يتم إصدارها، يتدفق بحث WooCommerce على المواقع متعددة اللغات من خلال المعالجة القياسية لإضافة WooCommerce Multilingual في WPML، وليس من خلال ElasticPress.
المزالق الشائعة
- لم يتم تشغيل المزامنة بعد تفعيل ميزة جديدة في ElasticPress. لا يؤدي تفعيل Documents أو Related Posts في ElasticPress > Features إلى إضافة تلك المستندات إلى الفهرس بأثر رجعي. أعد المزامنة بعد تبديل الميزات.
- مزامنة WP-CLI بدون
--setupبعد تغيير رئيسي. إذا قمت بتغيير أنواع المنشورات القابلة للترجمة، أو الميزات المفعّلة، أو قمت بترقية WPML ElasticPress عبر حد إصدار رئيسي، فشغّلwp wpml_elasticpress sync --setupلإعادة بناء كل فهرس من الصفر. - قالب نتائج البحث في القالب يتجاوز مرشحات ElasticPress. تُنفّذ بعض القوالب المخصصة استعلام نتائج البحث الخاص بها والذي لا يمر عبر ElasticPress. إذا كانت النتائج تبدو خاطئة فقط في الواجهة الأمامية (وتجتاز فحوصات لوحة التحكم)، فقد يحتاج قالب نتائج البحث إلى التحديث.
- بحث منتجات WooCommerce يعرض نتائج بلغات مختلطة. هذه ليست مشكلة مزامنة. إنها فجوة تغطية WooCommerce المذكورة أعلاه. وجّه بحث المنتجات من خلال المعالجة القياسية لإضافة WooCommerce Multilingual في الوقت الحالي.
- نص المستندات لا يظهر في البحث. تأكد من تفعيل ميزة Documents في ElasticPress > Features ومن تشغيل المزامنة منذ تفعيلها.
بقلم Amir · آخر تحديث في 2 يوليو 2026
بقلم Amir · آخر تحديث 2 يوليو 2026