KHÓA HỌC DATABASE TRONG WORDPRESS
  • KHÓA HỌC DATABASE WORDPRESS
    • Giới thiệu khóa học
    • Khóa học này dành cho ai ?
    • Nội dung khóa học
    • Chuẩn bị cho khóa học
  • Bài 1: Phân tích thiết kế Database WordPress
    • Bài viết và chuyên mục liên kế như thế nào trong database ?
    • Hình ảnh được lưu ở đâu trong databse WordPress ?
    • Ảnh đại diện của một bài viết được lưu như thế nào?
    • Menu của WordPress được lưu ở đâu trong databse?
    • Widget được lưu ở dâu trong databse ?
    • Một plugin active lưu ở đâu?
  • Bài 2: Tạo bảng mới trong database WordPress
    • Tìm hiểu về Class wpdb & Tạo bảng mới
    • Tạo bảng mới với khóa ngoại
  • Bài 3: Thêm, sửa, xóa dữ liệu database WordPress vơi $wpdb
    • Thêm dữ liệu vào database WordPress
    • Cập nhật dữ liệu database WordPress
    • Xóa dữ liệu database WordPress
  • Bài 4: Query dữ liệu database Wordpress
    • Get results
    • Get row
    • Get var
    • Get col
  • Bài 5: Thực hành query dữ liệu database WordPress
    • Get 10 bài viết mới nhất
    • Truy vấn sql database wordpress get 10 bài viết mới nhất có hình đại diện
    • Truy vấn sql database wordpress get 10 bài viết theo chuyên mục
  • Bài 6: Thực hành tạo form contact với custom databse
    • Download template form contact & Tạo database lưu trữ dữ liệu contact
    • Xử lý dữ liệu vào lưu dữ liệu vào database
    • Cấu hình SMTP & Gởi mail liên hệ thông qua hàm wp_email
    • Hiển thị dữ liệu contact và tính năng tìm kiếm
    • Tối ưu database và bảo mật
Powered by GitBook
On this page
  • Xóa một bảng trong database wordpress:
  • Một số lưu ý:
  1. Bài 2: Tạo bảng mới trong database WordPress

Tạo bảng mới 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é!

<?php
function hk_CreatDatabaseContacts(){
    global $wpdb;
    $charsetCollate = $wpdb->get_charset_collate();
    $contactTable = $wpdb->prefix . 'contacts';
    $createContactTable = "CREATE TABLE IF NOT EXISTS `{$contactTable}` (
        `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
        `user_id` bigint(20) UNSIGNED NOT NULL,
        `name` varchar(255) NOT NULL,
        `email` varchar(255) NOT NULL,
        `phone` varchar(20) NULL,
        `address` varchar(255) NULL,
        `content` longtext NULL,
        `date` timestamp NOT NULL,
        PRIMARY KEY (`id`),
        FOREIGN KEY (user_id) REFERENCES {$wpdb->prefix}users(ID) ON DELETE CASCADE ON UPDATE CASCADE
    ) {$charsetCollate};";
    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $createContactTable );
}

add_action('init', 'hk_CreatDatabaseContacts');
?>

Ở đâ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!

<?php
    global $wpdb;
    $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}contacts" );
?>

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:

add_action( 'after_switch_theme', 'hk_CreatDatabaseContacts' );

function detect_plugin_activation( $plugin, $network_activation ) {
    
}
add_action( 'activated_plugin', 'detect_plugin_activation', 10, 2 );
PreviousTìm hiểu về Class wpdb & Tạo bảng mớiNextBài 3: Thêm, sửa, xóa dữ liệu database WordPress vơi $wpdb

Last updated 1 year ago