Làm cách nào để tạo bảng sql trong wordpress?

WordPress đi kèm với một số bảng cơ bản được tạo trong cơ sở dữ liệu của trang web của bạn. Có các bảng dành cho bài đăng và dữ liệu meta của họ, người dùng và dữ liệu meta của họ, tùy chọn trang web, v.v.

Và phần lớn những thứ đó hoạt động tốt. Ngay cả khi bạn có một trang web hơi phức tạp, bạn vẫn có thể sử dụng các loại bài đăng tùy chỉnh và trường tùy chỉnh để hoàn thành công việc

Nhưng đôi khi những bảng đó không đủ. Đôi khi bạn cần tạo tùy chỉnh để có nhiều quyền kiểm soát hơn. Và đó là nơi các bảng tùy chỉnh phát huy tác dụng

Tại sao bạn có thể cần phải tạo một bảng tùy chỉnh

Vì vậy, câu hỏi đầu tiên mà bạn có thể đặt ra là “Tôi cần có một bảng tùy chỉnh cho trang web của mình trong tình huống nào?”

Các bảng WordPress mặc định hoạt động tốt cho phần lớn những gì bạn muốn làm, cho dù bạn chỉ là một công ty, một blogger hay một nhà phát triển đang xây dựng trang web. Giữa các loại bài đăng tùy chỉnh và các trường tùy chỉnh (ACF, Pods, v.v. ), bạn có thể thiết kế một hệ thống giao diện người dùng phù hợp với mình

Nhưng nếu bạn đang xây dựng một dự án liên quan đến dữ liệu tùy chỉnh, thì có lẽ tốt nhất là ít nhất bạn nên suy nghĩ xem liệu dữ liệu sẽ tốt hơn trong một bảng tùy chỉnh hay không. Gravity Forms có các bảng tùy chỉnh và Easy Digital Downloads cũng sẽ chuyển sang các bảng tùy chỉnh vào năm 2018. Và Ghế thể thao được xây dựng với các bảng tùy chỉnh

Đó là bởi vì nó hoạt động tốt hơn. Bạn không cần phải sắp xếp hàng nghìn hàng meta bài đăng để chỉ lấy một vài bit dữ liệu meta bài đăng. Ngoài ra, bạn biết cấu trúc của (các) bảng giúp viết mã để lấy dữ liệu dễ dàng hơn

Vì vậy, nếu bạn đang tìm cách xây dựng một sản phẩm phức tạp, thì các bảng tùy chỉnh có thể là cách tốt nhất

Cách tạo bảng tùy chỉnh

Hướng dẫn này sẽ tập trung chủ yếu vào cách để MySQL hoạt động theo cách của WordPress để tạo một bảng tùy chỉnh trong cơ sở dữ liệu WordPress của bạn. Nếu bạn không quen thuộc với MySQL, tôi thực sự khuyên bạn nên xem phần về nó trên W3Schools trước khi tiếp tục

Vì vậy, câu lệnh MySQL của chúng tôi để tạo một bảng cực kỳ đơn giản. Đối với hướng dẫn này, chúng tôi sẽ tạo một bảng nhỏ cho các đội thể thao với id đội, tên đội, vị trí của đội (thành phố và tiểu bang) và tên sân vận động của đội. Vì vậy, trong MySQL, câu lệnh của chúng ta sẽ như thế này

CREATE TABLE wp_sb_teams(
team_id INTEGER NOT NULL AUTO_INCREMENT,
team_name TEXT NOT NULL,
team_city TEXT NOT NULL,
team_state TEXT NOT NULL,
team_stadium TEXT NOT NULL,
PRIMARY KEY (team_id))

Đó là tất cả MySQL mà chúng ta sẽ viết. Bây giờ để viết điều này theo cách của WordPress

Tất cả các mã sau đây sẽ đi vào chức năng của bạn. php hoặc tệp plugin chính của bạn. Trước tiên, chúng tôi cần gọi đối tượng toàn cầu $wpdb để chúng tôi có thể giao tiếp với cơ sở dữ liệu, sau đó chúng tôi lấy charset_collate và sau đó đưa vào bản nâng cấp. tập tin php bao gồm trong WordPress. Đừng lo lắng quá nhiều về hai mục cuối cùng. Đây là những điều sẽ làm cho quá trình của chúng tôi dễ dàng hơn

Tiếp theo chúng ta cần đặt tên cho bảng. Thông thường tốt nhất là sử dụng cùng một tiền tố bảng như phần còn lại của trang web, vì vậy hãy đặt tiền tố $wpdb->trước phần còn lại của tên bảng. Tiếp theo, chúng tôi sẽ đặt câu lệnh MySQL của chúng tôi bên trong một biến, cũng như charset_collate từ trước đó

Và cuối cùng, chúng tôi chạy biến đó thông qua hàm dbDelta, hàm này sẽ chạy MySQL của chúng tôi để tạo bảng. Vì vậy, mã cuối cùng của chúng tôi sẽ trông như thế này

function sports_bench_create_db() {
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );

//* Create the teams table
$table_name = $wpdb->prefix . 'sb_teams';
$sql = "CREATE TABLE $table_name (
team_id INTEGER NOT NULL AUTO_INCREMENT,
team_name TEXT NOT NULL,
team_city TEXT NOT NULL,
team_state TEXT NOT NULL,
team_stadium TEXT NOT NULL,
PRIMARY KEY (team_id)
) $charset_collate;";
dbDelta( $sql );
}
register_activation_hook( __FILE__, 'sports_bench_create_db' );

Bạn sẽ lưu ý rằng tôi đã gói cái này bên trong một hàm được gọi bằng hook register_activation trong WordPress. Điều này đảm bảo mã này được gọi khi chúng tôi kích hoạt plugin này. Nếu bạn chỉ viết mã này ra ngoài, nó sẽ chạy mỗi khi bạn tải một trang và điều đó sẽ gây ra sự cố tải nếu không muốn nói là lỗi. Và bên cạnh đó, bạn sẽ chỉ cần chạy mã này một lần thường xuyên

Nơi bạn có thể đi từ đây

Vì vậy, bạn có thể làm gì với các bảng tùy chỉnh?

Nhưng nó cung cấp cho bạn một giải pháp khác để khắc phục sự cố. Bạn có thể sử dụng điều này khi bạn đang tạo một sản phẩm cho thị trường WordPress xử lý nhiều dữ liệu liên quan đến nhau, chẳng hạn như plugin thể thao hoặc plugin thương mại điện tử.  

Nhưng thực sự, yếu tố quyết định giữa việc bạn có nên hay không nên sử dụng bảng tùy chỉnh phụ thuộc vào việc nó có làm cho trang web tốt hơn hay không. Tôi có thể cung cấp cho bạn câu trả lời cho mọi trang web vì mỗi trang web đều khác nhau. Đó là quyết định của bạn để thực hiện