WPML

ไม่มีอะไรต้องแปลในการผสานการทำงานกับ ElasticPress ปลั๊กอินความเข้ากันได้จะทำให้ ElasticPress แสดงผลลัพธ์ที่ถูกต้องตามภาษาโดยอัตโนมัติ หน้าที่ของคุณคือติดตั้งส่วนประกอบต่าง ๆ เรียกใช้การซิงค์ครั้งแรก และยืนยันว่าผลลัพธ์ดูถูกต้อง

ก่อนที่คุณจะเริ่มต้น

ติดตั้งและเปิดใช้งานปลั๊กอินเหล่านี้บนเว็บไซต์เดียวกัน

คุณต้องมีตำแหน่งข้อมูล Elasticsearch ด้วยเช่นกัน ไม่ว่าจะเป็นแบบโฮสต์เองหรือบริการที่มีการจัดการ เช่น ElasticPress.io (เปิดในแท็บใหม่) Elastic Cloud หรือ AWS OpenSearch กำหนดค่า ElasticPress กับโฮสต์ Elasticsearch ของคุณ และยืนยันว่าสามารถทำดัชนีได้สำเร็จบนเว็บไซต์ภาษาเดียวก่อนที่จะเพิ่มชั้นการทำงานของ WPML

กำหนดค่าภาษา WPML ของคุณก่อนที่จะเรียกใช้การซิงค์ครั้งแรก

การทำดัชนีตามภาษาทำงานอย่างไร

WPML ElasticPress จะสร้างดัชนี Elasticsearch แยกต่างหากสำหรับแต่ละภาษาบนเว็บไซต์ของคุณ ดัชนีของแต่ละภาษาประกอบด้วย

  • คำแปลในภาษานั้น สำหรับประเภทโพสต์ที่แปลได้ทุกประเภท
  • โพสต์ภาษาเริ่มต้น สำหรับประเภทโพสต์ใด ๆ ที่ตั้งค่าให้ถอยกลับไปใช้ภาษาเริ่มต้นเมื่อไม่มีคำแปล
  • สำเนาของโพสต์ที่แปลไม่ได้ ดัชนีของทุกภาษาจะรวมสิ่งเหล่านี้ไว้เพื่อให้สามารถปรากฏในผลการค้นหาได้โดยไม่คำนึงถึงภาษาของผู้เยี่ยมชม

เอกสารทุกฉบับในดัชนีภาษาจะได้รับการวิเคราะห์ในภาษานั้น การจัดการคำหยุด การตัดคำ การย่อคำ รูปพหูพจน์ และกาลล้วนเป็นไปตามข้อกำหนดเฉพาะของแต่ละภาษา นี่คือสิ่งที่ทำให้การค้นหาภาษาฝรั่งเศสตรงกับรากศัพท์ภาษาฝรั่งเศส และการค้นหาภาษาญี่ปุ่นตรงกับสัณฐานวิทยาภาษาญี่ปุ่น หากไม่มีการวิเคราะห์ตามภาษา เครื่องมือค้นหาจะใช้กฎของภาษาหนึ่งกับข้อความของภาษาอื่น ๆ ทั้งหมด

สำหรับการค้นหาของผู้เยี่ยมชมแต่ละราย WPML ElasticPress จะส่งต่อคำค้นหาไปยังดัชนีภาษาที่ตรงกัน กลุ่มผลลัพธ์จะถูกกรองให้เป็นภาษาที่ถูกต้องแล้วก่อนที่การจัดอันดับความเกี่ยวข้องจะเริ่มต้นขึ้น

เรียกใช้การซิงค์ครั้งแรก

เมื่อเปิดใช้งานปลั๊กอินทั้งสี่ตัวและกำหนดค่าตำแหน่งข้อมูล Elasticsearch ใน ElasticPress แล้ว ให้เรียกใช้การซิงค์ครั้งแรก

  1. เปิด ElasticPressSync ในหน้าจัดการเว็บไซต์ WordPress
  2. คลิก Start Sync

WPML ElasticPress จะทริกเกอร์การซิงค์หนึ่งครั้งต่อภาษา และสร้างดัชนีตามภาษาทีละรายการ ในเว็บไซต์ขนาดใหญ่อาจใช้เวลาสองสามชั่วโมง โดยหน้าเพจจะรายงานความคืบหน้าในขณะที่การซิงค์ทำงาน

หากคุณกำลังอัปเดตจาก WPML ElasticPress 1.0 เป็น 2.0 หรือใหม่กว่า ให้ทำดัชนีใหม่ รูปแบบดัชนีมีการเปลี่ยนแปลงเมื่อเวอร์ชัน 2.0 เปิดตัวการทำดัชนีตามภาษา

หลังจากการซิงค์ครั้งแรก การอัปเดตเนื้อหาจะไหลเข้าสู่ดัชนีที่ถูกต้องโดยอัตโนมัติ เมื่อใดก็ตามที่คุณสร้าง แก้ไข หรือลบโพสต์ WPML ElasticPress จะอัปเดตดัชนีภาษาที่สอดคล้องกันในเบื้องหลังตามภาษาของโพสต์นั้นหรือการตั้งค่าการแปลสำหรับประเภทโพสต์นั้น

การทำดัชนีภาษาเฉพาะด้วย WP-CLI

สำหรับเว็บไซต์ขนาดใหญ่ งานที่กำหนดเวลาไว้ สคริปต์การปรับใช้ หรือเวิร์กโฟลว์ใด ๆ ที่ไม่สามารถใช้ UI ของหน้าจัดการเว็บไซต์ได้ 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. การค้นหาแสดงผลลัพธ์ในภาษาเดียวกันจากแต่ละภาษา

จากส่วนหน้าเว็บไซต์ ให้สลับตัวสลับภาษาเป็นแต่ละภาษาตามลำดับ และค้นหาคำที่คุณทราบว่ามีอยู่ในรูปแบบที่แปลแล้ว

  • ผ่าน หน้าผลลัพธ์จะแสดงเฉพาะโพสต์ในภาษานั้น
  • ไม่ผ่าน ผลลัพธ์จากภาษาอื่นปรากฏขึ้นพร้อมกับผลลัพธ์ที่ตรงกันในภาษาเดียวกัน การซิงค์อาจยังไม่เสร็จสมบูรณ์สำหรับภาษานั้น ให้ตรวจสอบข้อผิดพลาดที่ ElasticPressSync และเรียกใช้คำสั่ง WP-CLI เฉพาะภาษาอีกครั้ง

2. เนื้อหาที่มีเฉพาะภาษาต้นทางจะไม่แสดงผลลัพธ์ในภาษาอื่น

เลือกโพสต์ที่มีเฉพาะในภาษาเริ่มต้นของคุณ โดยไม่มีคำแปลในภาษาอื่น ๆ บนเว็บไซต์ จากเวอร์ชันที่ไม่ใช่ภาษาเริ่มต้นของเว็บไซต์ ให้ค้นหาวลีจากโพสต์นั้น

  • ผ่าน ไม่มีผลลัพธ์ โพสต์ไม่ได้ถูกแปลเป็นภาษาของผู้เยี่ยมชม ดังนั้นจึงไม่ควรปรากฏขึ้น
  • ไม่ผ่าน โพสต์ปรากฏในผลลัพธ์ ซึ่งมักจะหมายความว่าประเภทโพสต์ถูกตั้งค่าให้ถอยกลับไปใช้ภาษาเริ่มต้นใน WPMLการตั้งค่าการแปลประเภทโพสต์ นั่นคือการตั้งค่าระดับ WPML ไม่ใช่ข้อบกพร่อง หากคุณไม่ได้ตั้งใจให้มีการถอยกลับ ให้เปลี่ยนการตั้งค่า

เปิดโพสต์ที่แปลแล้วในส่วนหน้าเว็บไซต์ วิดเจ็ต Related Posts ควรแสดงโพสต์อื่น ๆ ในภาษาเดียวกันเท่านั้น

  • ผ่าน โพสต์ที่เกี่ยวข้องทุกโพสต์จะลิงก์ไปยังเนื้อหาในภาษาเดียวกันกับหน้าปัจจุบัน
  • ไม่ผ่าน โพสต์ที่เกี่ยวข้องจากภาษาอื่นปรากฏขึ้น ยืนยันว่าฟีเจอร์ Related Posts ถูกเปิดใช้งานใน ElasticPressFeatures และดัชนีภาษาสำหรับภาษาปัจจุบันซิงค์เสร็จสิ้นแล้ว

หากฟีเจอร์ Documents เปิดใช้งานใน ElasticPress ให้อัปโหลด PDF ที่แปลแล้วไปยังเวอร์ชันภาษาต้นทางของโพสต์ จากนั้นอัปโหลด PDF ภาษาอื่นไปยังคำแปลของโพสต์นั้น ค้นหาวลีที่ปรากฏเฉพาะใน PDF ที่แปลแล้ว

  • ผ่าน การค้นหาจากส่วนหน้าเว็บไซต์ที่ภาษาตรงกันจะแสดง PDF ที่ถูกต้อง การค้นหาในภาษาต้นทางจะไม่แสดง PDF ที่แปลแล้ว และในทางกลับกัน
  • ไม่ผ่าน PDF จากภาษาอื่นปรากฏในผลลัพธ์ ซิงค์ใหม่อีกครั้งหลังจากเปิดใช้งาน Documents คำสั่ง wp wpml_elasticpress sync --setup จะสร้างทุกดัชนีใหม่พร้อมกับการทำดัชนีเอกสาร

5. การค้นหาในระบบหลังบ้าน (Terms, Comments, Users) กรองตามภาษา

หากคุณเปิดใช้งานฟีเจอร์ Terms Comments หรือ Users ใน ElasticPressFeatures ให้ค้นหาจากหน้าจัดการเว็บไซต์ WordPress และยืนยันว่าผลลัพธ์กรองตามภาษาปัจจุบันของหน้าจัดการเว็บไซต์ สิ่งนี้มีผลต่อผู้ใช้ที่ค้นหาในระบบหลังบ้านของเว็บไซต์หลายภาษา

6. การซิงค์มัลติไซต์ไม่ล้างดัชนีของเว็บไซต์พี่น้อง

หากคุณใช้งาน WPML และ ElasticPress บนเครือข่ายมัลติไซต์ ให้เรียกใช้การซิงค์ดัชนีบนเว็บไซต์หนึ่ง แล้วตรวจสอบเว็บไซต์อื่น ๆ ในเครือข่าย ดัชนีของเว็บไซต์เหล่านั้นควรยังคงอยู่ครบถ้วน

  • ผ่าน การทำดัชนีเว็บไซต์หนึ่งจะไม่ส่งผลกระทบต่อดัชนีของเว็บไซต์พี่น้อง
  • ไม่ผ่าน ดัชนีของเว็บไซต์พี่น้องว่างเปล่า ให้หยุด เรียกใช้การซิงค์บนเว็บไซต์ที่ได้รับผลกระทบอีกครั้ง และรายงานปัญหาไปยังฝ่ายสนับสนุนของ WPML เพื่อให้พวกเขาสามารถยืนยันได้ว่าคุณกำลังพบปัญหามัลติไซต์ที่เคยเกิดขึ้นมาก่อนหรือเป็นปัญหาใหม่

หากการตรวจสอบทุกข้อข้างต้นผ่าน แสดงว่าการค้นหาหลายภาษาของคุณทำงานตามที่ออกแบบไว้

ฟีเจอร์ของ ElasticPress ที่รองรับ

ปัจจุบัน WPML ElasticPress ทำให้ฟีเจอร์ของ ElasticPress ต่อไปนี้รองรับการทำงานตามภาษา

  • Post Search การค้นหาในส่วนหน้าเว็บไซต์ครอบคลุมโพสต์ หน้า และประเภทโพสต์แบบกำหนดเอง
  • Related Posts วิดเจ็ตโพสต์ที่เกี่ยวข้องจะกรองเฉพาะผลลัพธ์ที่ตรงกันในภาษาเดียวกัน
  • Documents ค้นหาภายในไฟล์ PDF ที่แนบมา .docx .pptx และไฟล์ประเภทอื่น ๆ
  • Terms Comments และ Users การค้นหาในระบบหลังบ้าน

ฟีเจอร์การค้นหาเฉพาะสำหรับ WooCommerce ของ ElasticPress (การค้นพบผลิตภัณฑ์ การกรองผลิตภัณฑ์แบบแบ่งมุมมอง การค้นหาผลิตภัณฑ์ทันทีทั่วทั้งแคตตาล็อก) ในปัจจุบันยังไม่รองรับหลายภาษา การรองรับหลายภาษาสำหรับการค้นหาของ WooCommerce อยู่ในแผนงานของ WPML จนกว่าจะถึงเวลานั้น การค้นหาของ WooCommerce บนเว็บไซต์หลายภาษาจะดำเนินการผ่านการจัดการมาตรฐานของ WooCommerce Multilingual ของ WPML ไม่ใช่ผ่าน ElasticPress

ข้อผิดพลาดที่พบบ่อย

  • ไม่ได้เรียกใช้การซิงค์หลังจากเปิดใช้งานฟีเจอร์ใหม่ของ ElasticPress การเปิดใช้งาน Documents หรือ Related Posts ใน ElasticPressFeatures จะไม่เพิ่มเอกสารเหล่านั้นลงในดัชนีย้อนหลัง ให้ซิงค์ใหม่อีกครั้งหลังจากเปิดปิดฟีเจอร์
  • ซิงค์ WP-CLI โดยไม่มี --setup หลังจากการเปลี่ยนแปลงครั้งใหญ่ หากคุณเปลี่ยนประเภทโพสต์ที่สามารถแปลได้ เปลี่ยนฟีเจอร์ที่เปิดใช้งาน หรืออัปเกรด WPML ElasticPress ข้ามเวอร์ชันหลัก ให้เรียกใช้ wp wpml_elasticpress sync --setup เพื่อสร้างทุกดัชนีใหม่ตั้งแต่ต้น
  • เทมเพลตผลการค้นหาของธีมข้ามฟิลเตอร์ของ ElasticPress ธีมแบบกำหนดเองบางธีมใช้คิวรีผลการค้นหาของตนเองซึ่งไม่ผ่าน ElasticPress หากผลลัพธ์ดูผิดปกติเฉพาะในส่วนหน้าเว็บไซต์ (และผ่านการตรวจสอบในหน้าจัดการเว็บไซต์) เทมเพลตธีมอาจต้องได้รับการอัปเดต
  • การค้นหาผลิตภัณฑ์ WooCommerce แสดงผลลัพธ์แบบผสมภาษา นี่ไม่ใช่ปัญหาการซิงค์ แต่เป็นช่องว่างการรองรับของ WooCommerce ตามที่กล่าวไว้ข้างต้น ในตอนนี้ให้กำหนดเส้นทางการค้นหาผลิตภัณฑ์ผ่านการจัดการมาตรฐานของ WooCommerce Multilingual
  • ข้อความในเอกสารไม่ปรากฏในการค้นหา ยืนยันว่าฟีเจอร์ Documents ถูกเปิดใช้งานใน ElasticPressFeatures และมีการเรียกใช้การซิงค์ตั้งแต่เปิดใช้งาน

เขียนโดยAmir

เขียนโดยAmir