Hướng dẫn tạo bảng mới trong database wordpress

Hướng dẫn tạo bảng mới trong database wordpress

Ngày 19 - 04 - 2019 - Tại chuyên mục: Wordpress - Lượt xem: 9656

Ở bài trước mình đã giới thiệu cho các bạn cấu trúc database wordpress và cũng đã biết database wordpress mặc định có tổng cộng là 12 bảng. Vậy chúng ta có thể tạo thêm vài bảng nữa được ko? Nếu được thì cách tạo như thế nào? rồi liên kết với các bảng có sẵn được hay không? Để trả lời các câu hỏi đó các bạn cùng đọc qua bài viết tạo bảng mới trong database wordpress của mình nhé!

tạo bảng mới trong database wordpress

Database mặc đinh của wordpress có 12 bảng

Tạo bảng mới trong database wordpress:

Ví dụ yêu cầu: Tạo một bảng mới trong database wordpress để lưu thông tin liên hệ của khách hàng. Thông tin liên hệ khách hàng gồm: Họ và tên, email, số điện thoại, địa chỉ, tiêu đề và nội dung liên hệ.

Với yêu cầu phía trên mình sẽ tạo một table mới có tên là: wp_contacts. Và trong table này sẽ có các trường tương ứng là: ID, name, email, phone, address, title, content, date.

Để tạo bảng mới trong database wordpress các bạn chèn đoạn code sau vào file functions.php của theme đang dùng nhé!

Giải thích code tạo database mới trong wordpress:

Chúng ta tạo một hàm có tên là hk_CreatDatabaseContacts (bạn có thể đặt tên hàm tùy thích nhé). Sau đó móc hàm vừa vào action ‘init‘ để mỗi khi load website là nó tự động chạy hàm đó. Sau đây là một số thành phần có trong hàm tạo database.

  • Dòng 3: global $wpdb => lớp $wpdb là lớp dùng để tương tác với database trong wordpress ( nói chung là cái này wordpress cung cấp sẵn để mình dùng 😀 )
  • Dòng 4: Get charset của database sau đó gán vào biến $charsetCollate, để tạo bảng mới cùng charset tổng thể của database.
  • Dòng 5: Đặt một biến $contactTable là tên của bảng cần tạo. $wpdb->prefix => Get prefix của database, mặt định của database là wp_
  • Từ dòng 6 đến dòng 15: Tạo biến $createContactTable là câu sql kiểm tra trong database có bảng đó chưa, nếu chưa có thì tiến hành tạo bảng mới. Với trường id là khóa chính, tự tăng.
  • Dòng 15: Iclude file hệ thống của wp, file này chứa nhiều thư viện giúp bạn tạo database. (Bạn cứ inlude vào ko cần quan tâm nhé)
  • Dòng 16: Sử dụng hàm dbDelta với biến $createContactTable được khai báo ở trên.

Xem kết quả:

Sau khi chèn đoạn có trên, bạn ra ngoài website và tiến hành reload lại trang và vào phpmyadmin xem kết quả, nếu xuất hiện bảng wp_contacts có nghĩa đoạn code trên đã chạy.

Hướng dẫn tạo bảng mới trong database wordpress

Bảng wp_contacs đã được tạo trong database của dự án

Đây là phần thiết kế của bảng vừa tạo

Tạo bảng mới trong database wordpress với khóa ngoại:

Các bạn chèn đoạn code sau vào file functions.php của theme đang dùng nhé!

Ở đây user_id là khóa ngoại, Liên kết bảng wp_contacts với bảng wp_users nha.

Đoạn code trên cho phép tạo khóa ngoại là user_id đồng thời ràng buộc khi xóa user A, thì những record ở bảng wp_contacs có chứa user_id của user A cũng bị xóa theo luôn nhé!.

Xóa một bảng trong database wordpress:

Để xóa một bảng trong database wordpress các bạn dùng đoạn code sau chèn vào file functions.php của theme đang dùng!

Một số lưu ý:

Khi các bạn tạo bảng mới trong database wordpress thì nên chạy 1 lần, tránh móc hàm tạo database vào action init. Vì action init mỗi lần load web nó sẽ chạy, vì thế action init chạy rất nhiều lần dễ gây lỗi và làm chậm website

Các bạn chỉ nên chạy khi active theme hoặc active plugin.

Tạo database khi active theme:

Tạo database khi active plugin:

Tóm lại:

Bài viết này mình đã hướng dẫn cho các bạn cách tạo bảng mới trong database của worpdress. Nhìn chung thì cũng khá đơn giản, chỉ cần copy đoạn code của mình chỉnh sửa các thông số cho phù hợp là oke. Ở bài viết tiếp theo mình sẽ hướng dẫn cho các bạn các query, thêm, xóa, sửa các dữ liệu trong table của database wordress bằng cậu lệnh query mysql.

Chào các bạn! Chúc các bạn học wordpress vui vẻ!

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...)

6
  • nam 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... ?? tối về viết blog... Sức có hạn mà Anh tâm huyết và chia sẽ kinh nghiệm với mọi người Cảm ơn Anh

    Thích Trả lời 5 năm trước

  • Vu NguyenHay quá bạn. Đúng cái mình đang cần luôn. Cám ơn bạn đã chia sẻ. Tiện thể, bạn có xuất bản thêm bài viết hiển thị dữ liệu của table wp_contacts trong trang quản trị không ah !

    Thích Trả lời 5 năm trước

    • Huy KiraOke bạn! Để mình nghiên cứu làm 1 bài hướng dẫn về chủ đề này!

      Thích Trả lời 5 năm trước

  • Nguyễn PhátVí dụ mình muốn thêm 1 trường vào 1 bảng post blog chẳng hạn. vậy thì mình cần làm gì nữa để cho admin và hiễn thị chạy được vậy nhỉ bạn ?

    Thích Trả lời 5 năm trước

    • Huy KiraBạn muốn thêm 1 cột vào bảng post phải ko? Wordpress nó ko hiểu và chạy cái cột đó đâu. Bạn phải code ví duj như dùng một số cái action như save_post

      Thích Trả lời 5 năm trước

AVT