Tổng quan về sự cố
Nếu bạn đang sử dụng hosting Flywheel hoặc ImageMagick, việc tải tệp PDF lên thư viện WordPress của bạn sẽ gây ra lỗi nghiêm trọng:
PHP Fatal error: Uncaught Error: Cannot use object of type WP_Error as array in /www/wp-content/plugins/wpml-media-translation/classes/media-translation/class-wpml-media-attachment-image-update.php:61
Giải pháp tạm thời
Sự cố này đã được khắc phục trong WPML 4.6.4. Việc cập nhật giải quyết vấn đề này trên trang web của bạn, vì vậy bạn chỉ cần giải pháp tạm thời này nếu chưa thể cập nhật.
- Tạo bản sao lưu đầy đủ cho trang web của bạn.
- Chỉnh sửa /wp-content/plugins/wpml-media-translation/classes/media-translation/class-wpml-media-attachment-image-update.php, dòng 49-76
- Thay đổi: Thành:
if ( wp_image_editor_supports( array( 'mime_type' => $file['type'] ) ) ) { $editor = wp_get_image_editor( $file['file'] ); if ( ! is_wp_error( $editor ) ) { $size = $editor->get_size(); if ( $size['width'] > 150 || $size['height'] > 150 ) { $resizing = $editor->resize( 150, 150, true ); if ( is_wp_error( $resizing ) ) { wp_send_json_error( $resizing->get_error_message() ); } } $thumb = $editor->save(); if ( ! empty( $thumb ) ) { $uploads_dir = wp_get_upload_dir(); $thumb_url = $uploads_dir['baseurl'] . $uploads_dir['subdir'] . '/' . $thumb['file']; $thumb_path = $thumb['path']; } } else { wp_send_json_error( __( 'Failed to load the image editor', 'wpml-media' ) ); } } elseif ( 0 === strpos( $file['type'], 'image/' ) ) {if ( wp_image_editor_supports( array( 'mime_type' => $file['type'] ) ) ) { if ( ! extension_loaded( 'imagick' ) && ($file_array["type"] !== "application/pdf")) { $editor = wp_get_image_editor($file['file']); if (!is_wp_error($editor)) { $size = $editor->get_size(); if ($size['width'] > 150 || $size['height'] > 150) { $resizing = $editor->resize(150, 150, true); if (is_wp_error($resizing)) { wp_send_json_error($resizing->get_error_message()); } } $thumb = $editor->save(); if (!empty($thumb)) { $uploads_dir = wp_get_upload_dir(); $thumb_url = $uploads_dir['baseurl'] . $uploads_dir['subdir'] . '/' . $thumb['file']; $thumb_path = $thumb['path']; } } else { wp_send_json_error(__('Failed to load the image editor', 'wpml-media')); } } } elseif ( 0 === strpos( $file['type'], 'image/' ) ) {