WPML
Trạng thái
Đang mở
Được báo cáo cho
WPML Multilingual CMS 4.6.0
Thẻ chủ đề
Compatibility, Feature request

Tổng quan về lỗi

Nếu bạn đang dịch các trường tùy chỉnh gốc của WordPress, bạn có thể cần sửa đổi các tùy chọn dịch thuật của mình khi dự án phát triển. Tuy nhiên, bạn sẽ cần cập nhật nội dung của mình để các trường tùy chỉnh đó có sẵn để dịch trong Trình biên tập dịch thuật nâng cao.

Mặc dù điều này đã được dự liệu, chúng tôi hoàn toàn hiểu rằng đây là việc không mong muốn, đặc biệt nếu bạn có một trang web lớn và các bản dịch của bạn đang ở giai đoạn nâng cao.

Lưu ý: kể từ Advanced Custom Field Multilingual 2.0, điều này không còn áp dụng cho các trường ACF vì nó tính toán lại chữ ký nội dung cho tất cả các bài viết và buộc phải tạo lại các công việc dịch thuật mới.

Giải pháp tạm thời

Vui lòng đảm bảo tạo bản sao lưu đầy đủ cho trang web của bạn trước khi tiếp tục.

Lưu ý: Hãy nhớ rằng nếu bạn đang sử dụng tính năng Dịch mọi thứ của chúng tôi, các trường tùy chỉnh đó sẽ được dịch tự động.

  1. Thêm đoạn mã sau vào tệp functions.php của bạn và nhớ sửa đổi hai giá trị này cho phù hợp.
    • Tên loại bài viết: post
    • Tên trường tùy chỉnh: 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. Truy cập trang web của bạn và thêm phần này vào URL của bạn: /?wpml_sync (ví dụ:
    https://example.com/?wpml_sync)
  3. Xóa mã khỏi tệp của bạn.

Tất cả các lỗi đã ghi nhận →