Hướng dẫn query dữ liệu database wordpress, truy vấn SQL trong wordpress

Hướng dẫn query dữ liệu database wordpress, truy vấn SQL trong wordpress

Ngày 18 - 10 - 2019 - Tại chuyên mục: Wordpress - Lượt xem: 10554

Trở lại với chủ đề database của wordpress. Hôm nay mình sẽ hướng dẫn cho các bạn cách query dữ liệu database wordpress, tất nhiên là không dùng cái new WP_Query của wordpress :D. Bài viết này yêu cầu bạn phải có sơ kiến thức về mysql thì mới hiểu được. Mà nếu chưa có kiến thức thì hôm nay tìm hiểu cũng được 😀

Hướng dẫn query dữ liệu database wordpress

Hướng dẫn query dữ liệu database wordpress

1. Get results

Get results sử dụng trong trường hợp lấy nhiều record trong 1 bảng. Ví dụ mình có đoạn code sau:

Với đoạn code trên mình muốn lấy ra 10 bài viết trong bảng wp_posts, có post_type là post. Dữ liệu trả về là 1 array có nhiều array con.

2. Get row

Get row sử dụng trong trường hợp bạn muốn lấy ra 1 record. Ví dụ như get 1 bài viết, dùng để get trang chi tiết bài viết…

Đoạn code trên lấy dữ liệu của 1 record có ID là 5. Dữ liệu sẽ trả về 1 mảng chứa thông tin của bài viết có id là 5.

3. Get var

Get var được sử dụng trong trường hợp lấy 1 giá trị nào đó trong database. Ví dụ số lượng bài viết, số lượng view của 1 bài viết…

Đoạn code trên thực hiện nhiệm vụ lấy số lượng bài viết của user có id là 1. Được gán vào biến $munber

Ngoài 3 cách query dữ liệu như trên wordpress còn có cung cấp một số phương pháp query kiểu khác, nhưng mình chưa tìm hiểu đến nên chưa dùng. Các bạn nếu cần có thể tìm hiểu thử.

database wordpress

Hướng dẫn join 1, nhiều bảng và query dữ liệu database wordpress

1. Join 1 bảng và query dữ liệu

Bài toán ví dụ: Get bài viết có kèm tên tác giả của bài viết đó.

Phân tích: Trong database wordpress thì bài viết được lưu ở bảng wp_posts và trong bảng này ko có cột để lưu tên của tác giả, chỉ có cột để lưu id của tác giả là ‘post_author‘. Tên tác giả được lưu ở bảng wp_users. Vì vậy để đáp ứng yêu cầu của bài toán chúng ta từ bảng wp_posts phải join vào bảng wp_user để lấy tên của tác giả như sau:

Đoạn code trên lấy ra 10 record của bảng wp_posts. Mỗi record có các thông tin sau:

  • Id của bài viết
  • Tiêu đề bài viết
  • Ngày viết bài
  • Tên tác giả của bài viết

Bạn có thể lấy nhiều thông tin hơn bằng cách khai váo những trường cần lấy chổ cậu sql SELECT…

2. Join nhiều bảng và query dữ liệu

Bài toán ví dụ: Get bài viết có kèm tên và mô tả tác giả của bài viết đó.

Phân tích: Cũng tương tự như bài toán trên nhưng ở bài này yêu cầu là cần thêm mô tả của tác giả. Mô tả của tác giả thì lại không nằm trong bảng post và user mà nó lại nằm trong bảng wp_usermeta. Vì thế để thực hiện bài toán này chúng ta sẽ tiếp tục join thêm 1 bảng nữa vào code.

Ở bài này mình join thêm 1 bảng wp_usermeta. Bảng user và bảng usermeta liên kết với thông qua user_id. Chúng ta tiến hành join như bình thường!

Tóm lại:

Bài hôm nay mình đã hướng dẫn cho bạn cách query dữ liệu database wordpress. Cách query này thường áp dụng cho trường hợp bạn tạo bảng mới trong database wordpress mà bảng đó không có hàm nào hỗ trợ get dữ liệu.

Ưu điểm:

  • Dữ liệu trả về rất nhanh, làm tăng tốc đố load web, cũng như tăng performance cho website
  • Có thể get dữ liệu của bất kỳ bảng nào trong database
  • Không phụ thuộc vào các hàm của WP
  • Câu query thân thiện giống với query trong php thuần

Nhược điểm:

  • Tốn thời gian viết code
  • Phải có kiến thức cơ bản về mysql và cấu trúc database của wordpress
  • Dễ bị tấn công sql injection nếu không có kiến thức bảo mật tốt.

Để tìm hiểu kỹ hơn về việc query dữ liệu database wordpress các bạn có thể tham khảo tài liệu ở đây: => Class wpdb

Chúc các bạn học wordpress hiệu quả!

Huy Kira

Đam mê hóa học, ưng thi vào trường kinh tế... Đậu vào trường Sư phạm, quyết tâm đi dạy... Ra trường đi làm designer, tự học frontend, chuyển qua làm PHP, được công ty đào tạo laravel... Và hiện tại đang code react native(2015) => Fullstack ... ?? tối về viết blog... (Còn tiếp...)

0
AVT