- Trạng thái
- Đang mở
- Được báo cáo cho
- WPML Multilingual CMS 4.7.0
- Thẻ chủ đề
- Bug
Tổng quan về lỗi
WPML 4.7 gặp vấn đề về khả năng tương thích với các plugin sử dụng PSR/Log 3.0, chẳng hạn như Rollbar. Khi cả WPML và Rollbar đều đang hoạt động, việc chạy các lệnh WP-CLI (ví dụ: wp --info) sẽ gây ra lỗi nghiêm trọng do sự không khớp về chữ ký phương thức trong lớp DebugFileLogger.
PHP Fatal error: Declaration of WPML\\PHP\\Logger\\DebugFileLogger::log($level, $message, array $context = []) must be compatible with Psr\\Log\\AbstractLogger::log($level, Stringable|string $message, array $context = []): void in ...\\wp-content\\plugins\\sitepress-multilingual-cms\\vendor\\wpml\\wpml\\lib\\Php\\Logger\\DebugFileLogger.php on line 8
Giải pháp tạm thời
Vui lòng đảm bảo bạn có bản sao lưu toàn bộ trang web trước khi tiếp tục.
- Mở tệp …/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/lib/Php/Logger/DebugFileLogger.php.
- Thay thế:
namespace WPML\PHP\Logger; class DebugFileLogger extends \Psr\Log\AbstractLogger { public function log( $level, $message, array $context = array() ) { if ( ! defined( 'WP_DEBUG' ) || ! WP_DEBUG ) { return; } $log = date( 'Y-m-d H:i:s' ) . ' [' . $level . '] ' . $message . PHP_EOL; \error_log( $log ); } } - Bằng:
namespace WPML\PHP\Logger; use Psr\Log\AbstractLogger; use Stringable; class DebugFileLogger extends AbstractLogger { public function log($level, $message, array $context = []): void { if ( ! defined( 'WP_DEBUG' ) || ! WP_DEBUG ) { return; } $log = date( 'Y-m-d H:i:s' ) . ' [' . $level . '] ' . (string) $message . PHP_EOL; \error_log( $log ); } }