Lưu trữ không tương thích (Incompatible Archive) khi cài đặt theme hoặc plugin
Nếu bạn đang sử dụng phiên bản WordPress 6.4.3 rất có thể bạn sẽ gặp phải lỗi Incompatible Archive (Lưu trữ không tương thích) khi bạn cài đặt 1 plugin hoặc theme nào đó, lỗi này do plugin hoặc theme đã được nén trên máy sử dụng hệ điều hành MacOS và mô-đun ZipArchive đang hoạt động trên máy chủ của bạn.
Cốt lõi của vấn đề nằm ở cách MacOS nén file zip và cách WordPress 6.4.3 diễn giải chúng khi tải lên. Các cải tiến bảo mật gần đây nhằm mục đích thắt chặt quá trình tải lên đã vô tình tạo ra những thách thức đối với các tệp zip được nén trên hệ điều hành MacOS, dẫn đến thông báo lỗi ‘Lưu trữ không tương thích‘ làm nhiều người lầm tưởng rằng plugin hoặc theme tải lên bị lỗi như ảnh phía dưới.
Dòng mã trên sẽ yêu cầu WordPress sử dụng lớp PclZip thay vì mô-đun ZipArchive.
Ngoài ra bạn cũng có thể fix bằng cách giải nén file zip kia ra và zip lại là được (áp dụng trên Windows)
Nếu bạn dùng hệ điều hành macOS thì bạn cũng giải nén plugin hoặc theme ra, thay vì sử dụng tùy chọn ‘Nén’ bằng chuột phải thì bạn hãy nén thư mục plugin bằng dòng lệnh.
Sau khi zip lại thì bạn cài lên sẽ không bị báo lỗi Incompatible Archive – Lưu trữ không tương thích nữa..
I. Sửa lỗi Incompatible Archive – Lưu trữ không tương thích
Để giải quyết nhanh vấn đề này, bạn có thể thêm dòng code dưới đây vào filefunctions.php
của theme là được.
1 |
add_filter( 'unzip_file_use_ziparchive', '__return_false' ); |
1 |
zip -r ten-plugin.zip ten-plugin/ |
II. Dành cho DEV
Nếu bạn là nhà phát triển plugin hoặc chủ đề và bạn zip trên máy Mac thì bạn có thể khắc phục sự cố này bằng cách làm theo các bước sau: 1. Mở cửa sổ Terminal trên máy Mac của bạn 2. Viết lệnhcd
để đi đến thư mục nơi bạn có tệp zip
3. Viết lệnh zip -d ten-plugin-cua-ban.zip "__MACOSX*"
Thao tác này sẽ tự động xóa tất cả các tệp ẩn có tên _macosx
khỏi file zip. Nếu không có những tệp đó, tệp zip của bạn sẽ được tải lên mà không gặp vấn đề gì.
Vậy là xong, hy vọng WordPress sớm giải quyết lỗi khó chịu này.