Chắc hẳn bạn đã từng nghe Lập Trình Hướng Đối Tượng OOP trong PHP rồi chứ? Trong bài viết này tôi không nói chi tiết về OOP nữa, bạn có thể tham khảo trên anh Gồ giúp mình nhé.
Trọng tâm bài viết hôm nay tôi sẽ giúp bạn truy xuất dữ liệu bất kì của table nào trong database WordPress thông qua các Class một cách đơn giản nhất. Và đặc biệt “Rất dễ hiểu”
Nhiệm vụ của chúng ta là kết nối với các bảng và lấy dữ liệu của các dòng (row), cột (column) để sử dụng.
Let’s go
1. Bước chuẩn bị
Trước tiên bạn tạo cho tôi thư mục chứa các Class trong thư mục theme bạn đang sửa dụng, trong ví dụ này tôi đang dùng theme wpshare247.lp và cấu trúc thư mục của tôi là:
1.1 Tạo file thư viện W_SQLMaster.php
Tiếp theo tại thư mục này, bạn tạo cho tôi 1 file php có tên bất kì, ví dụ tôi tạo file với tên: W_SQLMaster.php dùng để truy vấn đến cơ sở dữ liệu thông qua $wpdb của WordPress. File này có cấu trúc như sau:
code\wp-content\themes\wpshare247.lp\dev\classes\W_SQLMaster.php
1.2 Tạo file chứa hướng đối tượng (Class) OOP
Trong danh sách bất kì table nào của WordPress bạn cũng có thể tạo Class cho nó. Tôi sẽ ví dụ với table wp_posts ( là bảng chứa các post – page hoặc custom post type ). Chú ý prefix wp_, không phải lúc nào các bảng wordpress cũng là prefix này, bạn hãy kiểm tra trong file wp-config.php tại thư mục code để biết chính xác nhé.
Ví dụ Tôi sẽ đặt tên file Class cho wp_posts là: WpShare247_Wp_Posts.php tại thư mục code\wp-content\themes\wpshare247.lp\dev\classes
Nội dung file OOP này như sau:
Cách khai báo:
- const TABLE = ‘wp_posts’; wp_posts là tên bảng trong database WordPress.
- const ID = ‘ID’; ID là cột khóa chính trong bảng wp_posts
Đến đây mọi thứ đã chuẩn bị gần như hoàn chỉnh. Hãy chuyển sang bước 2 để bắt đầu sử dụng nhé.
2. Gọi thư viện Class vào Theme WordPress
Để gọi thư viện, bạn hãy mở file functions.php và thêm đoạn code sau vào:
3. Cách sử dụng
Để sử dụng được hướng đối tượng OOP vừa khai báo trên. Bạn hãy vào template single.php trong thư mục theme đang sử dụng. Nếu chưa có thì hãy tạo file này nhé. Single.php là template hiển thị nội dung chi tiết của 1 bài post trong WordPress.
Nội dung file single.php
Tại đây, sau khi New WpShare247_Wp_Posts, lúc này bạn có thể lấy bất kì dữ liệu cột nào của bảng wp_posts ngay tại dòng có ID = get_the_ID() như đoạn code trên.
3.1 Truy xuất dữ liệu có sẵn của table wp_posts qua đối tượng.
Bạn cũng có thể lấy bất kì dữ liệu cột nào có trong bảng wp_posts
3.2 Sử dụng phương thức Method của hướng đối tượng trong WordPress.
Bạn cũng có thể sử dụng hoặc khai báo thêm nhiều method mới cho Class như sau:
Sử dụng hàm có sẵn của thư viện để lấy ID của Object
Cụ thể xem tại dòng //Gọi hàm của Object
3.3 Khai báo thêm Method cho Object
Ví dụ tôi cần kiểm tra bài viết đang xem có được xuất bảng hay chưa. Tôi sẽ khai báo thêm method như sau: chú ý tại dòng // Kiểm tra trạng thái bài viết này có được xuất bản hay chưa?
Sử dụng hàm is_publish() vừa gọi trong template. chú ý tại dòng: // Kiểm tra bài viết xuất bản hay chưa?
Ngoài ra bằng kiến thức hướng đối tượng đã học qua bạn có thể dễ dàng tạo ra vô số các phương thức cho đối tượng này để phục vụ cho mình nhé.
4. Thêm, Xóa, Sửa đối tượng
Bằng các phương thức sau bạn có thể dễ dàng thay đổi dữ liệu bảng wp_posts của wordpress thông qua đối tượng WpShare247_Wp_Posts.
4.1 Thêm mới 1 dòng vào bảng wp_posts
Sau khi thêm thành công sẽ trả về đối tượng đã thêm. Lúc này bạn kiểm tra bảng wp_posts sẽ thấy 1 dòng mới.
4.2 Sửa 1 dòng vào bảng wp_posts
Sau khi update thành công sẽ trả về đối tượng. Lúc này bạn kiểm tra dữ liệu bảng wp_posts tại dòng có ID = 16 sẽ thấy dữ liệu đã đổi mới.
4.3 Xóa 1 dòng trong bảng wp_posts
Sau khi xóa thành công sẽ trả về true.
Nếu bạn đã từng tìm hiểu qua mô hình Model-View-Controller thì WpShare247_Wp_Posts nó chính là Model. Giúp cho việc truy xuất dữ liệu rất dễ dàng trong lập trình WordPress.
5. Tạo table và Class mới cho riêng mình.
Điều này là khác biệt lớn nhất trong bài viết này. Ngoài những bảng mặc định mà WordPress đã có sẵn, bạn cũng có thể tạo riêng một table cho mình để lưu trữ dữ liệu.
Ví dụ tôi cần 1 bảng chứa các báo cáo của nhân viên công ty với tên: wp_wpshare247_reports.
5.1 Tạo bảng mới bằng PhpMysql.
Bảng wp_wpshare247_reports sẽ có 5 cột: ID, title, content, user_id, created
Sau khi tạo bảng thành công. Bạn xem lại bước 1.2 bên trên nhé. ( Vì đã hướng dẫn cụ thể bên trên rồi nên các bước dưới đây mình xin viết ngắn gọn lại ).
5.2 Tạo Class mới kết nối tới bảng.
Cụ thể ở đây tôi sẽ tạo ra Class là: WpShare247_Wp_reports ( nhớ cũng tạo ra file WpShare247_Wp_reports.php nhé ) với nội dung như sau, Class này sẽ kết nối tới bảng wp_wpshare247_reports vừa tạo.
5.3 Tương tác dữ liệu giữa Class và bảng.
Bạn có thể gọi đoạn code trên hay khai báo Đối tượng WpShare247_Wp_reports bất kì tại các template của WordPress. Tuy nhiên tôi hứa sẽ hướng dẫn các bạn làm theo chuẩn cấu trúc mô hình MVC (Model-View-Controller) trong WordPress ở một bài gần nhất.
Như vậy tôi vừa hướng dẫn các bạn cách sử dụng hướng đối tượng OOP trong WordPress. Hi vọng bài viết sẽ giúp bạn hiểu thêm cách dùng Class nhé.
Subscribe by Email
Follow Updates Articles from This Blog via Email
No Comments