WordPress tạo bảng cơ sở dữ liệu

Khi làm việc với các giải pháp hoặc plugin tùy chỉnh trong WordPress, các bảng tùy chỉnh có thể là một giải pháp tốt vì nó sẽ mang lại cho bạn hiệu suất tốt hơn so với việc sử dụng các bảng mặc định, chẳng hạn như posts hoặc postmeta

Một số plugin phổ biến như WooC Commerce và Easy Digital Downloads cũng sử dụng bảng tùy chỉnh. Easy Digital Downloads đang chuyển sang một kiến ​​trúc bảng tùy chỉnh hoàn chỉnh, vì vậy nó sẽ trở nên nhanh hơn nhiều

Vào năm 2018, WooC Commerce đã thử tải một cơ sở dữ liệu lớn để so sánh trang web sẽ hoạt động như thế nào nếu họ chuyển sản phẩm sang các bảng tùy chỉnh. Họ đã phát hiện ra rằng hiệu suất đã tăng 30% (tải trang nhanh hơn)

Khi bắt đầu một plugin, nhiều người đang sử dụng bảng posts mặc định vì nó cung cấp toàn bộ chức năng, bố cục CRUD và thậm chí, ở mặt trước, bạn có được các tuyến đường và quy tắc viết lại được thực hiện cho bạn. Nếu bạn hỏi tôi, đó là một cách tuyệt vời để bắt đầu và kiểm tra ý tưởng của bạn bằng một plugin

Nhưng sau này, bạn chắc chắn nên chuyển sang các bảng tùy chỉnh của mình nếu bạn dự định lưu trữ các dữ liệu khác để giải phóng các bảng postspostmeta

Bảng mặc định của WordPress

Đây là tất cả các bảng mặc định mà bạn có thể sử dụng trong WordPress (wp_ chỉ là tiền tố)

  • wp_options
  • wp_users
  • wp_links
  • wp_commentmeta
  • wp_term_relationships
  • wp_postmeta
  • wp_posts
  • wp_term_taxonomy
  • wp_usermeta
  • wp_terms
  • wp_termsmeta
  • wp_comments

Các bảng postspostmeta nói chung được sử dụng nhiều nhất vì chúng được sử dụng để tạo bài đăng, trang, tệp đính kèm và cho tất cả các loại bài đăng tùy chỉnh khác

Các bảng khác có thể được sử dụng đều liên quan đến nguyên tắc phân loại. Chúng được cấu trúc tốt hơn nhiều. Kiến trúc của các bảng đó có thể được kiểm tra và sử dụng để tạo các bảng quan hệ khác

Bảng WooC Commerce

Vì tôi làm việc rất nhiều với WooC Commerce nên tôi sẽ trình bày giải pháp của họ. Tại thời điểm viết bài này, họ có những bảng này

Như bạn có thể thấy, họ dựa vào rất nhiều bảng tùy chỉnh. Nhấp vào từng cái ở trên sẽ dẫn bạn đến định nghĩa bảng của chúng

Nếu xem kỹ danh sách trên, bạn sẽ nhận thấy có 2 bảng có hậu tố posts8. WordPress có các chức năng siêu dữ liệu có thể được sử dụng để hoạt động trên các bảng như vậy

Khi làm việc với các bảng tùy chỉnh, bạn sẽ phải làm việc trực tiếp với posts9

Làm việc với các bảng Meta

Nếu bạn có một loại dữ liệu cũng có thể có một số bảng meta khác, thì bạn sẽ phải đăng ký bảng meta của mình. Vì vậy, làm thế nào nó hoạt động?

Định nghĩa bảng meta. Tên {data_type}meta

meta_idBIGINT UNSIGNED{data_type}_idBIGINT UNSIGNEDmeta_keyvarchar(255)meta_valuelongtext

Bảng này được sử dụng cho mọi bảng meta trong WordPress. Tất nhiên, bạn có thể có nhiều cột hơn nếu cần, nhưng đó là những cột bạn cần để các hàm meta WordPress hoạt động

Điều duy nhất là duy nhất, đó là {data_type}. Vì vậy, bạn cũng cần phải có cùng tên bảng. Trong trường hợp của WooC Commerce, bạn sẽ có bảng meta cho loại dữ liệu order_item

  • Cái bàn.
    hide_errors();
      
      if ( ! function_exists( 'dbDelta' ) ) {
        require_once ABSPATH . 'wp-admin/includes/upgrade.php';
      }
    
      $collate = '';
    
      if ( $wpdb->has_cap( 'collation' ) ) {
    	$collate = $wpdb->get_charset_collate();
      }
      
      $schema = "
    CREATE TABLE {$wpdb->prefix}your_table (
      id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
      -- Add columns here
      PRIMARY KEY  (id)
    ) $collate;";
    
      dbDelta( $schema );
    }
    
    5
  • Loại. postmeta1

Bạn vẫn không thể sử dụng postmeta2 và các hàm meta tương tự. Bàn của bạn phải được đăng ký bên trong posts9

Vì vậy, bạn sẽ phải đăng ký nó chẳng hạn như postmeta4. Bằng cách đó, nếu chúng tôi sử dụng postmeta5, WordPress sẽ tìm một bảng được đăng ký là postmeta6 và sử dụng bảng đó cho các hoạt động CRUD

Cài đặt bảng tùy chỉnh

Khi nào bạn nên cài đặt các bảng tùy chỉnh trong WordPress?

  • khi kích hoạt plugin,
  • trên luồng cập nhật

Trong hầu hết các trường hợp, bạn sẽ cài đặt các bảng tùy chỉnh khi kích hoạt plugin bằng phương pháp postmeta7

Quy trình cập nhật

Nếu bạn làm việc với các bảng tùy chỉnh, bạn chắc chắn sẽ có một luồng cập nhật. Chúng tôi sẽ đề cập đến điều đó trong một trong những hướng dẫn của loạt bài này. Nhưng để cung cấp cho bạn một cái nhìn tổng quan

  • Khi tải trang, tải phiên bản plugin của bạn từ DB
  • Kiểm tra nó với phiên bản plugin hiện tại
  • Nếu phiên bản từ DB cũ hơn, hãy bắt đầu cập nhật
  • Bên trong bản cập nhật đó, hãy chạy tất cả các chức năng cập nhật cho đến phiên bản hiện tại và cập nhật phiên bản trong DB

Tạo bảng

Để tạo bảng, với WordPress, bạn có chức năng postmeta8. Bạn có thể chuyển một chuỗi chứa nhiều lược đồ bảng và nó sẽ tạo ra chúng

Một điều khá hữu ích khác là dbDelta sẽ thay đổi các bảng nếu chúng đã có ở đó, vì vậy bạn không phải lo lắng về các truy vấn cập nhật

hide_errors();
  
  if ( ! function_exists( 'dbDelta' ) ) {
    require_once ABSPATH . 'wp-admin/includes/upgrade.php';
  }

  $collate = '';

  if ( $wpdb->has_cap( 'collation' ) ) {
	$collate = $wpdb->get_charset_collate();
  }
  
  $schema = "
CREATE TABLE {$wpdb->prefix}your_table (
  id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  -- Add columns here
  PRIMARY KEY  (id)
) $collate;";

  dbDelta( $schema );
}

Phần kết luận

Không nên bỏ qua Custom Tables trong WordPress dù bạn không có WordPress API cho nó. Như với bất kỳ ứng dụng nào khác, bạn sẽ tạo các bảng tùy chỉnh cho nhu cầu của mình và không nhét mọi thứ vào hai bảng

Nhưng bạn phải lưu ý khi nào nên cài đặt chúng, khi nào nên cập nhật và khi nào nên xóa chúng

Tôi sẽ xem xét các phần khác nhau khi làm việc với các bảng tùy chỉnh trong một vài loạt bài hướng dẫn tiếp theo, vì vậy hãy chú ý theo dõi

Bạn có thể tạo cơ sở dữ liệu trong WordPress không?

Có một số cách để tạo cơ sở dữ liệu WordPress và tài khoản người dùng nếu bạn đang cài đặt WordPress trên máy chủ web của mình. Hai trong số những cách phổ biến hơn là sử dụng cPanel và phpMyAdmin .

Bảng cơ sở dữ liệu WordPress là gì?

Trong cơ sở dữ liệu WordPress, các giá được gọi là bảng. Có 11 bảng theo mặc định trên một trang web WordPress mới. Mỗi bảng chỉ có thể lưu trữ dữ liệu cụ thể. Chẳng hạn, bảng nhận xét wp ghi lại tất cả thông tin do một người nhận xét về bài đăng để lại như Địa chỉ IP, sên tác giả nhận xét, v.v.

Làm cách nào để tạo bảng cơ sở dữ liệu khi plugin của bạn được kích hoạt?

Cách tạo bảng cơ sở dữ liệu khi plugin của bạn được kích hoạt .
Bước 1. Kết nối một chức năng khi plugin được kích hoạt. register_activation_hook( __FILE__, 'myPluginCreateTable'); .
Bước 2. Viết code tạo bảng