WPML
สถานะ
เปิด
รายงานสำหรับ
WPML Multilingual CMS 4.6.0
แท็กหัวข้อ
Compatibility, Feature request

ภาพรวมของปัญหา

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

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

หมายเหตุ: ตั้งแต่ Advanced Custom Field Multilingual 2.0 เป็นต้นมา กรณีนี้จะไม่เกิดขึ้นกับฟิลด์ ACF อีกต่อไป เนื่องจากระบบจะคำนวณลายเซ็นเนื้อหาใหม่สำหรับโพสต์ทั้งหมดและบังคับให้สร้างงานแปลใหม่

วิธีแก้ปัญหาชั่วคราว

โปรดตรวจสอบให้แน่ใจว่าได้สำรองข้อมูลทั้งหมดของเว็บไซต์ของคุณก่อนดำเนินการต่อ

หมายเหตุ: โปรดทราบว่าหากคุณใช้คุณลักษณะ แปลทุกอย่าง ของเรา ฟิลด์ที่กำหนดเองเหล่านั้นจะได้รับการแปลโดยอัตโนมัติ

  1. เพิ่มข้อมูลโค้ดต่อไปนี้ลงในไฟล์ functions.php ของคุณ โดยอย่าลืมแก้ไขค่าสองค่านี้ให้เป็นค่าของคุณ
    • ชื่อประเภทโพสต์: post
    • ชื่อฟิลด์ที่กำหนดเอง: simple_field
      add_action('wp', function(){
          $config = [
              'post_type' => 'post', //Post type slug
              'meta_key_name' => 'simple_field' //Custom field key
          ];
         
          if (!isset($_GET['wpml_sync'])) {
              return;
          }
         
          set_time_limit(0);
          do_action('wpml_switch_language', apply_filters( 'wpml_default_language', null ));
          $all_posts = get_posts([
              'post_type' => $config['post_type'],
              'posts_per_page' => -1,
              'suppress_filters' => false
          ]);
         
          if (empty($all_posts)) {
              return;
          }
         
          foreach ($all_posts as $post) {
              do_action( 'wpml_sync_custom_field', $post->ID, $config['meta_key_name'] );
          }
         
          wp_die('Done!');
      });
  2. ไปที่เว็บไซต์ของคุณและเพิ่มสิ่งนี้ลงใน URL ของคุณ: /?wpml_sync (เช่น
    https://example.com/?wpml_sync)
  3. ลบโค้ดออกจากไฟล์ของคุณ

ปัญหาที่ทราบแล้วทั้งหมด →