The called constructor method for WP_Widget

Bài viết này mình sẽ cập nhật cho các bạn các sửa lỗi The called constructor method for WP_Widget, thật ra cái này cũng không phải là lỗi gì mà nó là một hàm bị deprecated trong WordPress, mình cũng không biết dịch cái từ này sang Tiếng Việt theo nghĩa nào cho đúng nữa.

Deprecated function and argument

Khi bạn gặp một hàm hoặc một tham số nào đó với thông báo là đã bị deprecated thì có nghĩa hàm này đã lỗi thời, không còn được khuyến khích sử dụng bởi nó đã được thay thế bằng một hàm khác.

PHP Notice:  The called constructor method for WP_Widget is <strong>deprecated</strong> since version 4.3.0! Use <pre>__construct()</pre> instead.

Nếu bạn là một lập trình viên hoặc một người bình thường mà muốn phát triển WordPress, bạn nên bật chế độ debug trong WordPress để kiểm tra các lỗi phát sinh, đảm bảo rằng sản phẩm của bạn khi đến tay người dùng cuối có càng ít lỗi càng tốt.

xem thêm: Cách bật debug trong WordPress

Khi một lỗi nào đó được trình debug phát hiện thì nó sẽ được ghi chú rõ ràng, được sử dụng ở đâu, được khai báo ở đâu. Bạn dựa vào thông tin này để chỉnh sửa lại code của bạn cho phù hợp. Tương tự với class WP_Widget bên trên. Đây là API để bạn tạo widget trên WordPress.

// Creating the widget 
class HOCWP_Test_Widget extends WP_Widget {
    // Right
    public function __construct() {
        parent::__construct('hocwp_widget', __('HOCWP Test Widget', 'hocwp'), array(
                    'description' => __('Just a test widget by HOCWP.', 'hocwp')
                )
        );
    }
    
    // Wrong
    public function HOCWP_Test_Widget() {
        $this->WP_Widget('hocwp_widget', __('HOCWP Test Widget', 'hocwp'), array(
                'description' => __('Just a test widget by HOCWP.', 'hocwp')
            )
        );
    }
}

Như vậy bạn chỉ cần thay hàm WP_Widget thành hàm __construct là lỗi này sẽ mất. Bạn có thể xem đoạn code bên trên để biết thêm cách khắc phục. Chúc bạn thành công.

Gửi bình luận của bạn 2 bình luận

Gửi bình luận

Địa chỉ email của bạn sẽ được giữ bí mật. Những mục bắt buộc được đánh dấu *