WordPress lưu trữ dữ liệu trong cơ sở dữ liệu

Lưu trữ và truy xuất dữ liệu người dùng là một trong những tính năng quan trọng nhất của bất kỳ trang web viết blog nào. Trong nhiều năm, WordPress đã phát triển cách riêng để quản lý dữ liệu của số lượng lớn người dùng. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách WordPress lưu trữ dữ liệu này trong cơ sở dữ liệu của nó

Trong WordPress, có hai bảng trong cơ sở dữ liệu lưu trữ thông tin về người dùng. Bảng wp_users lưu trữ thông tin cơ bản của người dùng, trong khi bảng wp_usermeta, được sử dụng để lưu trữ thông tin bổ sung về họ

Hai bảng khác được liên kết chặt chẽ với các bảng này. Chúng là wp_posts và wp_comments, tương ứng lưu trữ dữ liệu của từng bài đăng và nhận xét của người dùng. Bạn có thể xem nhanh cách tổ chức các bảng cơ sở dữ liệu người dùng WordPress trước khi tiếp tục, tại đây

WordPress lưu trữ dữ liệu trong cơ sở dữ liệu

Trong hình WP 4. 4. 2, bạn có thể xem tất cả các bảng được đề cập trong đoạn cuối. Bạn cũng có thể xem các thuộc tính của từng bảng và cách mỗi bảng được liên kết với cơ sở dữ liệu người dùng WordPress. Đừng để các ký hiệu làm bạn bối rối – chúng chỉ biểu thị mối quan hệ giữa các thuộc tính của các bảng đó

Bây giờ, hãy xem chi tiết hơn về các bảng cơ sở dữ liệu người dùng WordPress

 

Tổng quan về bảng wp_users

WordPress sử dụng bảng wp_users để lưu trữ dữ liệu người dùng trong cơ sở dữ liệu của nó. Chỉ thông tin người dùng cơ bản nhất được lưu trữ ở đây. Điều này bao gồm tên người dùng (user_login), mật khẩu (user_pass) và email (user_email) của người dùng

Ảnh chụp màn hình sau minh họa cấu trúc của bảng wp_users

WordPress lưu trữ dữ liệu trong cơ sở dữ liệu

Đây cũng là tổng quan về một số cột trong bảng người dùng khác

FieldDescriptionID Đó là mã định danh duy nhất được cung cấp cho mỗi người dùng tại thời điểm đăng ký. user_nicename Như người dùng WordPress thông thường có thể đã biết, WordPress cung cấp cho họ tùy chọn để có một tên riêng làm tên hiển thị của họ, được lưu trữ riêng trong trường này. user_url Đây là trường tùy chọn có thể được sử dụng để lưu trữ URL trang web của người dùng. Nhiều chủ đề sử dụng URL này trong phần nhận xét, bằng cách liên kết hình đại diện và/hoặc tên của người dùng với trang web của họ. user_activation_keyWordPress sử dụng trường này để lưu trữ các khóa duy nhất cho các yêu cầu đặt lại mật khẩu. user_statusMặc dù trường này được sử dụng để lưu trữ trạng thái của người dùng ở dạng số nguyên (0, 1 hoặc 2), nhưng nó không còn được sử dụng nữa. Nó hiện là một trường không được dùng nữa và rất có thể sẽ bị xóa khỏi các phiên bản trong tương lai. thư rác và đã xóaCác trường này chỉ được thêm vào bảng khi tính năng Nhiều trang được bật. Chúng lưu trữ các giá trị số nguyên để kiểm tra xem một bản ghi là thư rác hay đã bị xóa. Chúng chỉ có thể chứa các giá trị 0 hoặc 1

Trong user_activation_key, khi người dùng gửi yêu cầu đặt lại mật khẩu tới trang web, một khóa được tạo dưới tên check_password_reset_key, sau đó được gửi trong email. Khi họ nhấp vào liên kết trong email, nó sẽ khớp với khóa được lưu trữ trong trường này

Bây giờ, nếu khóa trong email khớp trực tiếp với khóa này, thì yêu cầu được coi là không hợp lệ. Hai khóa chỉ khớp sau khi khóa từ email được băm. Đây là cách WordPress xác thực yêu cầu thay đổi mật khẩu của người dùng

Đây là một ví dụ về cách thông tin được lưu trữ trong bảng wp_users

WordPress lưu trữ dữ liệu trong cơ sở dữ liệu

Lưu ý rằng mật khẩu được lưu trữ ở dạng băm trong WordPress như trong ví dụ trên để đảm bảo an toàn

Bạn có thể tải dữ liệu của bất kỳ người dùng nào, chỉ bằng cách tạo một phiên bản của lớp WP_User và chuyển ID người dùng làm tham số đầu tiên

1

2

3

$user = new WP_User ( 1); // 1 is the ID of the user that we are loading

$user - >user_email ; // [email protected]

$user - >user_nicename ; // John Doe

Tổng quan về bảng wp_usermeta

Bảng wp_users trong cơ sở dữ liệu người dùng WordPress được thiết kế để chỉ lưu trữ thông tin cơ bản của người dùng. Để lưu trữ dữ liệu người dùng WordPress bổ sung, bảng wp_usermeta được sử dụng. Trường ID từ bảng người dùng và trường user_id từ bảng này được sử dụng để liên kết bản ghi của cùng một người dùng

Các trường sau có mặt trong bảng này

FieldsDescriptionumeta_id Đây là mã định danh duy nhất của bản ghi meta. user_id Đây là mã định danh duy nhất của người dùng liên kết các bản ghi ở đây với bản ghi của người dùng mà nó thuộc về. meta_key Trường này lưu trữ tên của thông tin sẽ được lưu trữ. Một số giá trị phổ biến có thể tìm thấy trong cột này là admin_color, show_welcome_panel hoặc use_ssl. meta_value Trường này lưu trữ giá trị meta thực tế

Bảng meta người dùng thường được plugin sử dụng để lưu trữ dữ liệu người dùng tùy chỉnh. Trường giá trị meta không áp dụng bất kỳ hạn chế nào đối với các giá trị có thể được lưu trữ. Điều này có nghĩa là bạn có thể lưu trữ bất kỳ loại giá trị nào, bao gồm các chuỗi thông thường, số, ngày tháng hoặc thậm chí các đối tượng PHP ở định dạng tuần tự hóa

Đây là một ví dụ về cách thông tin được lưu trữ trong bảng wp_usermeta

WordPress lưu trữ dữ liệu trong cơ sở dữ liệu

 

Bạn có thể thao tác các bản ghi được lưu trữ trong bảng này theo hai cách khác nhau

Nếu bản ghi là trường cốt lõi của WordPress, rất có thể sẽ có trường biểu mẫu mà bạn có thể tìm thấy trên trang hồ sơ của mình để cập nhật giá trị của nó. Cách thứ hai là đi sâu hơn và làm theo chương trình. Điều này có nghĩa là bạn có thể sử dụng các chức năng đã được cung cấp bởi WordPress, có thể giúp bạn quản lý siêu dữ liệu của người dùng trên trang web của mình (tất nhiên, bạn sẽ cần phải có quyền để làm điều này)

add_user_meta ()  , update_user_meta () anddelete_user_meta() are the functions used to add, update and delete the user metadata respectively.

Để truy xuất dữ liệu meta của người dùng, bạn có thể sử dụng hàm  get_user_meta () . Dưới đây là một ví dụ về truy xuất dữ liệu meta first_name mà WordPress lưu trữ theo mặc định.

1

$first_name = get_user_meta ( 1, 'first_name', true ); // John


Ngoài ra, bạn cũng có thể sử dụng các công cụ như Thông tin chi tiết về người dùng cho phép bạn hiển thị và tìm kiếm meta người dùng

WordPress lưu trữ dữ liệu trong cơ sở dữ liệu

Bài đăng từ người dùng

Bất kỳ trang web WordPress nào ngoài đó hoàn toàn được điều khiển bởi các bài đăng của nó. Điều này có nghĩa là việc lưu trữ và truy xuất từng bài đăng của người dùng là một trong những khía cạnh quan trọng nhất của nó

Các bài đăng từ người dùng được lưu trữ trong bảng wp_posts. Cách mỗi bài đăng được liên kết với người dùng là theo cột post_author, nơi lưu trữ ID của người dùng đã tạo bài đăng

Đây là một ví dụ về cách thông tin được lưu trữ trong bảng wp_posts

WordPress lưu trữ dữ liệu trong cơ sở dữ liệu

Để tải tất cả các bài đăng do một người dùng cụ thể tạo, bạn có thể sử dụng get_posts () .

1

$user_posts = get_posts ( mảng( 'author' => 1 ) );

Ý kiến ​​người sử dụng

Bạn, với tư cách là một blogger, có thể viết rất nhiều bài trong suốt cuộc đời của mình, nhưng bạn sẽ không bao giờ khá hơn và phát triển với tư cách là một nhà văn nếu một số hình thức phản hồi hoặc phê bình không được cung cấp cho bạn. Nhận xét là công cụ cho phép độc giả của bạn có cơ hội giao tiếp với bạn và đưa ra những lời phê bình rất cần thiết đó. Vì điều này, các bình luận giờ đây đã trở nên quan trọng đối với một blog như bất kỳ thứ gì khác

WordPress lưu trữ những bình luận đó trong bảng. Nhận xét được liên kết với cả người dùng và bài đăng

Khi người dùng đã đăng ký để lại nhận xét, ID người dùng được lưu trữ trong cột user_id của bảng wp_comments. Tuy nhiên, trong trường hợp người bình luận không phải là người dùng WordPress, trường id người dùng sẽ mặc định là 0

Để tải tất cả nhận xét do một người dùng cụ thể gửi, bạn có thể sử dụng get_comments () . Bạn chỉ cần chỉ định ID người dùng làm tham số “author__in”.

1

$user_comments = get_comments ( mảng( 'author__in' => 1 ) );

Tìm kiếm thông qua cơ sở dữ liệu WordPress

Bạn có thể sử dụng chức năng như WP_Query hoặc get_posts để tìm kiếm thông qua các bảng cơ sở dữ liệu người dùng wordpress và sử dụng tiêu chí lọc của riêng bạn. Đối với điều này, WordPress đã cung cấp cho chúng ta lớp $wpdb. Sử dụng lớp $wpdb có thể dễ dàng và trực quan, đặc biệt nếu bạn có kinh nghiệm làm việc với các ngôn ngữ SQL. Sau đây là một ví dụ đơn giản về cách bạn có thể sử dụng lớp $wpdb để truy vấn cơ sở dữ liệu

Giả sử bạn muốn tìm kiếm dữ liệu của tất cả người dùng đã đăng ký vào ngày 24 tháng 1 năm 2018. Đây là mã để tạo truy vấn

1

2

3

toàn cầu $wpdb ;

$users_query = SELECT * FROM $wpdb->users WHERE user_registered = 2018-01-24 ”;

$users = $wpdb - >get_results($users_query);

Bạn cũng có thể sử dụng các hàm wpdb khác như truy vấn, get_var, get_row và get_col để nhận được kết quả mong muốn. Có thể tìm thấy mô tả đầy đủ về lớp wpdb ngay tại đây. Nếu bạn đang tìm kiếm một cách tìm kiếm dễ dàng hơn và ít hiểu biết hơn về công nghệ thông qua cơ sở dữ liệu người dùng, bạn cũng có thể sử dụng plugin WordPress như Thông tin chi tiết về người dùng để tìm kiếm cơ sở dữ liệu bằng cách sử dụng chức năng bộ lọc thông minh tích hợp sẵn

Phần kết luận

Trong bài viết này, chúng tôi đã tìm hiểu cách WordPress lưu trữ hồ sơ của người dùng. Chúng tôi cũng đã biết cách bạn, với tư cách là người dùng, được liên kết với các bài đăng và nhận xét mà bạn viết trên blog của mình (hoặc của người khác). Hơn nữa, chúng tôi đã thấy một danh sách các trường được sử dụng để lưu trữ tất cả các bản ghi đó và hiểu rõ hơn về cách thao tác chúng trong WordPress. Chúng ta đã thấy cách dữ liệu từ các bảng có thể được truy vấn bằng cách sử dụng lớp $wpdb hoặc sử dụng plugin WordPress

WordPress có cơ sở dữ liệu tích hợp không?

Tất cả các trang web WordPress đều có cơ sở dữ liệu được tích hợp trong mỗi lần cài đặt . Nhưng cơ sở dữ liệu cơ bản không có nhiều công cụ để tìm kiếm hoặc phân tích dữ liệu mà nó lưu trữ. Nói cách khác, WordPress sẽ thu thập và lưu trữ dữ liệu cho một trang web, nhưng việc hiểu rõ ý nghĩa của nó là tùy thuộc vào bạn.

WordPress lưu trữ dữ liệu ở đâu?

WordPress lưu trữ tất cả dữ liệu về bài đăng, trang và loại bài đăng tùy chỉnh của bạn (như dự án) trong cơ sở dữ liệu MySQL/MariaDB . Vì lý do kỹ thuật, dữ liệu được trải rộng trên nhiều bảng, nhưng nội dung chính nằm trong bảng wp_posts.

WordPress có tốt cho cơ sở dữ liệu không?

WordPress sử dụng hệ thống quản lý cơ sở dữ liệu MySQL . Hệ thống quản lý cơ sở dữ liệu quan hệ nguồn mở (RDBMS) này là tùy chọn phổ biến nhất để tạo cơ sở dữ liệu vì nó hoạt động với nhiều ứng dụng nguồn mở khác nhau. Cơ sở dữ liệu lưu trữ tất cả thông tin này trong bảng, hàng và cột.

Làm cách nào để tạo biểu mẫu và lưu trữ dữ liệu trong cơ sở dữ liệu trong WordPress?

Vì vậy, trong quản trị viên WordPress của bạn, đi tới Formidable → Biểu mẫu và nhấp vào Thêm mới . Bạn có thể chọn một trong các mẫu của chúng tôi hoặc chọn Biểu mẫu trống để bắt đầu từ đầu. Tiếp theo, đặt tên cho biểu mẫu của bạn, sau đó nhấp vào Tạo. Tùy chỉnh biểu mẫu của bạn theo cách bạn muốn với trình tạo kéo và thả thân thiện với người dùng.