Một trong các câu hỏi mình nhận được nhiều từ độc giả tại cddos.net đó chính là làm sao có thể tự lập trình một plugin trong WordPress, kể cả những người có kinh nghiệm lập trình lẫn người chưa biết lập trình. Ai cũng biết rằng WordPress là một CMS mã nguồn mở được viết bằng ngôn ngữ PHP, nên nếu muốn đụng vào phần core (hay còn gọi là phần lõi của mã nguồn) thì chắc chắn phải nắm vững kiến thức về PHP, kể cả lập trình theme hay lập trình plugin.
Nếu bạn chưa có kiến thức về PHP thì mình khuyên bạn nên học PHP căn bản để có thể hiểu được những gì mà chúng ta đang làm. Còn nếu bạn đã có kiến thức PHP rồi mà chưa có kinh nghiệm lập trình plugin thì serie video này sẽ giúp bạn điều đó.
Bộ video học lập trình plugin này không phải do mình quay mà là do một giảng viên PHP tại QHOnline.Info tên Ân Vũ tham gia giảng dạy theo lời mời của mình, nhưng dẫu sao thì nó cũng là một serie học dành cho độc giả tại cddos.net như các serie khác mình đã làm.
Trong serie này, mặc dù chúng ta sẽ viết plugin với một chức năng là lấy thông tin dự báo thời tiết của các tỉnh thành, nhưng với ví dụ đó bạn sẽ biết rõ hơn về cách triển khai một plugin và cách viết plugin theo mô hình code chuyên nghiệp, thuận tiện cho việc nâng cấp sau này.
Cụ thể hơn, với ứng dụng lấy thông tin dự báo thời tiết thông qua một API miễn phí, bạn sẽ biết cách áp dụng kỹ thuật xử lý dữ liệu kiểu JSON, ứng dụng AJAX để lấy thông tin đó để đưa ra ngoài widget và đặc biệt là sử dụng transient để lưu Object Cache để giảm tải cho máy chủ.
Còn đi sâu vào hơn như thế nào thì bạn hãy tự khám phá ra khi xem video nhé.
Trước khi bắt đầu làm theo video, bạn hãy tải file nguồn có sẵn tại đây, đó chỉ là template bằng HTML và CSS để bạn khỏi mất công dựng lại template thôi.
Và nếu bạn có nhu cầu tham khảo code, hãy tải file mã nguồn đã hoàn thành bên dưới.
Playlist trên Youtube: https://www.youtube.com/playlist?list=PLl4nkmb3a8w2mZDbIzTb5mLI9tcjXxV7M
Khi xem qua Video, bạn cũng thấy sự bất cập từ hàm file_get_contents()
rồi có đúng không nào? Đôi lúc, hàm này xảy ra lỗi khiến việc load dữ liệu về không chính xác.
Vậy để có thể hạn chế điều này, WordPress cũng đã cung cấp cho chúng ta một số hàm chuyên dụng để thực hiện việc này. Bạn có thể thay thế đoạn code sau vào thư viện TP_Weather_API
mà chúng ta đã tạo trước đó bằng việc thay thế các hàm có đoạn code tương ứng như sau:
Tìm:
@$fget = file_get_contents($url); if ($fget) { return self::get_JSON($fget); }
Thay thành
@$fget = wp_remote_get($url); if ($fget) { return self::get_JSON($fget['body']); } else { return false; }
Và tương tự với phương thức request trong thư viện API thành :
@$fget = wp_remote_get($url); if ($fget) { $return[] = self::get_JSON($fget['body']); }
Chúc các bạn thành công!