Làm cách nào để sử dụng Wpdb trong WordPress?
Ngoài hộp, WordPress cung cấp rất nhiều chức năng có thể được sử dụng để tương tác với cơ sở dữ liệu. Trong hầu hết các trường hợp, lớp 9 và các hàm liên quan như 0, 1, 2 sẽ đủ để hoàn thành công việc. Tuy nhiên, sẽ có lúc chúng tôi bắt buộc phải làm điều gì đó mà WordPress không cung cấp nguyên bản, đặc biệt là khi chúng tôi cần xử lý các bảng tùy chỉnh Show
Trong hướng dẫn này, chúng ta sẽ xem qua lớp quan trọng nhất để xử lý cơ sở dữ liệu trong WordPress – 3, bao gồm một số mẹo và thủ thuật có thể được triển khai trong quy trình phát triển của chúng ta sau này. Chúng tôi cũng sẽ chạm vào 4 có thể được sử dụng để tạo các bảng tùy chỉnh trong plugin của chúng tôi. Chúng tôi sẽ không đề cập đến những kiến thức cơ bản về cách tạo cơ sở dữ liệu WordPress ban đầu của bạn trong hướng dẫn này, nhưng vui lòng xem hướng dẫn này về cách tạo cơ sở dữ liệu từ cPanelLàm việc với lớp global $wpdb; $result = $wpdb->get_results('SELECT * FROM ' . $wpdb->posts . ' LIMIT 10');3 3 có lẽ là lớp quan trọng nhất mà chúng ta sử dụng khi cần xử lý trực tiếp cơ sở dữ liệu. Nó dựa trên lớp 7 được viết bởi Justin Vincent, được điều chỉnh để hoạt động với WordPressCác phương thức và thuộc tính cơ bản của lớp 3 đã được giải thích rõ ràng trên trang WordPress Codex nên không cần phải nhắc lại chúng ở đây. Thay vào đó, chúng tôi sẽ điểm qua một số lỗi phổ biến mà các nhà phát triển WordPress có thể mắc phải, cách khắc phục chúng cũng như các phương pháp hay nhất có thể áp dụng khi sử dụng lớp 3Không mã hóa tên bảng vào truy vấn SQLMột số nhà phát triển đưa ra giả định chung rằng tiền tố bảng sẽ không thay đổi và sử dụng giá trị mặc định là 10. Một ví dụ cơ bản về cách sai để làm điều này được minh họa trong đoạn mã dưới đây 2Tất nhiên, đây là sự đơn giản hóa quá mức về những gì một plugin sẽ thực sự làm, nhưng ví dụ này cho thấy mọi thứ có thể sai nhanh như thế nào. Điều gì sẽ xảy ra nếu người dùng của chúng tôi thay đổi tiền tố bảng thành thứ khác? Mã trên có thể được thực hiện di động bằng cách áp dụng các thay đổi như dưới đây
Thậm chí tốt hơn, nếu bạn đang xử lý các bảng mặc định của WordPress, bạn có thể bỏ qua phần tiền tố và thay vào đó, hãy trực tiếp giải quyết chúng dưới dạng các thuộc tính trong 3. Mỗi bảng WordPress mặc định được đại diện bởi một thuộc tính tùy chỉnh trong lớp 3 có cùng tên bảng mà không có tiền tốVí dụ: giả sử rằng tiền tố của bảng là 10
Và như thế. Đoạn mã trên có thể được cải thiện hơn nữa, vì chúng tôi đang truy vấn bảng bài đăng bằng cách thực hiện theo cách này thay thế
Sử dụng các phương thức trợ giúp cụ thể cho hoạt động cơ sở dữ liệuMặc dù phương thức 32 được thiết kế để xử lý bất kỳ truy vấn SQL nào, nhưng tốt hơn là sử dụng các phương thức trợ giúp phù hợp hơn. Điều này thường được cung cấp bởi các phương pháp như 33, 34, 35 và các phương pháp khác. Bên cạnh đó, nó cụ thể hơn cho các trường hợp sử dụng của chúng tôi, nó cũng an toàn hơn khi việc thoát hiểm và các công việc lặt vặt khác được xử lýHãy xem ví dụ này 1Ngoài bản chất không an toàn của đoạn mã này, nó sẽ chạy tốt với các giá trị phù hợp. Tuy nhiên, đoạn mã này có thể được cải thiện hơn nữa bằng cách sử dụng phương pháp 33 thay thế. Đoạn mã trên có thể được thay đổi để trông giống như sau 3Nếu chúng tôi không cung cấp định dạng dưới dạng tham số thứ ba cho phương thức 33, tất cả dữ liệu được cung cấp trong tham số thứ hai sẽ được thoát dưới dạng chuỗi. Ngoài ra, chúng ta có thể dễ dàng biết mã này làm gì trong nháy mắt, vì tên phương thức rõ ràng hơnTruy vấn cơ sở dữ liệu gỡ lỗi đúng cáchTheo mặc định, báo cáo lỗi bị tắt. Tuy nhiên, 3 cung cấp hai phương pháp có thể được sử dụng để chuyển đổi trạng thái báo cáo lỗiĐể bật tính năng báo lỗi, chỉ cần chạy mã này 5Và để tắt nó đi 6Một điều khác cần lưu ý là nếu chúng ta đặt cả 39 và 50 thành 51, thì phương thức 52 sẽ tự động được gọi. Có một phương pháp hữu ích khác có thể được sử dụng để xử lý lỗi, đó là 53 2Như tên gợi ý, nó sẽ chỉ hiển thị lỗi cho truy vấn gần đây nhất, bất kể trạng thái báo cáo lỗi Một thủ thuật thú vị khác là bật 54 trong 55. Điều này sẽ lưu trữ tất cả các truy vấn cơ sở dữ liệu đã chạy, thời gian thực hiện và nơi nó được gọi ban đầu vào một thuộc tính có tên là 56 trong lớp 3Để lấy dữ liệu này, chúng ta có thể làm như sau 7Lưu ý rằng điều này sẽ có tác động đến hiệu suất trên trang web của chúng tôi, vì vậy chỉ sử dụng nó khi cần thiết Hầu hết thời gian, các chức năng này sẽ đủ để gỡ lỗi những gì đang xảy ra với mã của chúng tôi. Tuy nhiên, để gỡ lỗi và báo cáo rộng rãi hơn, luôn có plugin Trình theo dõi truy vấn có thể giúp gỡ lỗi nhiều hơn các truy vấn cơ sở dữ liệu Bảo mật truy vấn chống lại các cuộc tấn công tiềm năngĐể bảo mật hoàn toàn mã của chúng ta khỏi SQL injection, 3 cũng cung cấp một phương thức hữu ích khác có tên là 59 sẽ lấy một chuỗi câu lệnh SQL và dữ liệu cần thoát. Điều này có liên quan bất cứ khi nào chúng tôi xử lý các phương pháp như 32 hoặc 61 2Phương thức 59 hỗ trợ cả cú pháp của 63 và 64. Tham số đầu tiên, 65 là một câu lệnh SQL chứa đầy các phần giữ chỗ. Các trình giữ chỗ này có thể tồn tại ở ba định dạng khác nhau
69 có thể là một chuỗi tham số cho cú pháp giống như 63 hoặc một mảng tham số sẽ được sử dụng để thay thế trình giữ chỗ trong 65. Phương thức sẽ trả về SQL với dữ liệu được thoát đúng cáchHãy xem cách chúng tôi có thể đạt được quy trình xóa 22 trong 19 cho một ID bài đăng cụ thể 0Lưu ý rằng đây không phải là cách được đề xuất để xóa bản ghi trong cơ sở dữ liệu bằng cách sử dụng 3. Đó là bởi vì chúng tôi đang để mã mở cho SQL injection, vì đầu vào của người dùng không được thoát đúng cách và được sử dụng trực tiếp trong câu lệnh 25Tuy nhiên, điều này có thể dễ dàng khắc phục. Chúng tôi chỉ giới thiệu phương thức 59 trước khi thực hiện truy vấn thực tế để SQL được tạo an toàn khi sử dụng. Điều này có thể được minh họa trong đoạn trích dưới đây 1Kết nối với cơ sở dữ liệu riêng biệtTheo mặc định, biến 27 là một thể hiện của lớp 3 kết nối với cơ sở dữ liệu WordPress được xác định trong 55. Nếu chúng ta muốn tương tác với các cơ sở dữ liệu khác, chúng ta có thể khởi tạo một thể hiện khác của lớp 3. Điều này mang lại lợi ích to lớn cho chúng tôi, bởi vì các phương pháp như 33, 34 và 61 đều có sẵnLớp 3 chấp nhận bốn tham số trong cấu trúc, đó là tên người dùng, mật khẩu, tên cơ sở dữ liệu và máy chủ cơ sở dữ liệu, theo thứ tự đó. Đây là một ví dụ 2Nếu chúng ta đang sử dụng cùng tên người dùng, mật khẩu và máy chủ lưu trữ cơ sở dữ liệu, nhưng chỉ cần thay đổi cơ sở dữ liệu đã chọn, thì có một phương thức hữu ích có tên là 75 trên biến toàn cục 27. Điều này đạt được trong nội bộ bằng cách sử dụng hàm 77/ 78 3Điều này cũng đặc biệt hữu ích khi chúng ta muốn chuyển sang một cơ sở dữ liệu WordPress khác, nhưng vẫn muốn giữ lại chức năng của các chức năng như 79 và các chức năng khácSử dụng bảng cơ sở dữ liệu tùy chỉnhCác bảng mặc định của WordPress thường đủ để xử lý hầu hết các hoạt động phức tạp. Bằng cách sử dụng các loại bài đăng tùy chỉnh với siêu dữ liệu bài đăng, phân loại tùy chỉnh và siêu dữ liệu thuật ngữ, chúng tôi có thể làm hầu hết mọi thứ mà không cần sử dụng bảng tùy chỉnh Tuy nhiên, các bảng tùy chỉnh có thể hữu ích bất cứ khi nào chúng tôi muốn kiểm soát tốt hơn dữ liệu mà plugin của chúng tôi có thể xử lý. Lợi ích của việc sử dụng bảng tùy chỉnh bao gồm
dbDelta để giải cứuThay vì sử dụng 3 để tạo bảng cơ sở dữ liệu tùy chỉnh, bạn nên sử dụng dbDelta để xử lý tất cả việc tạo bảng ban đầu của mình, cũng như cập nhật lược đồ bảng. Nó đáng tin cậy, vì lõi WordPress cũng sử dụng chức năng này để xử lý mọi cập nhật lược đồ cơ sở dữ liệu từ phiên bản này sang phiên bản khác, nếu cóĐể tạo một bảng tùy chỉnh ban đầu khi cài đặt plugin, chúng ta cần nối hàm của mình với hàm 26. Giả sử rằng tệp plugin chính của chúng tôi là 27 bên trong thư mục 28, chúng tôi có thể đặt dòng này trực tiếp vào đó 4Tiếp theo, chúng ta cần tạo hàm 29 thực hiện việc tạo bảng thực tế khi kích hoạt plugin. Ví dụ: chúng ta có thể tạo một bảng tùy chỉnh có tên là 00 sẽ được sử dụng để lưu trữ dữ liệu khách hàng đơn giản như tên, họ và địa chỉ email của họ 5Để tối đa hóa khả năng tương thích, chúng tôi truy xuất đối chiếu bộ ký tự cơ sở dữ liệu từ 3. Ngoài ra, câu lệnh SQL cần tuân thủ một số quy tắc để đảm bảo nó hoạt động như dự kiến. Điều này được lấy trực tiếp từ trang Codex trên Tạo bảng bằng plugin
Nói chung, bạn cũng nên lưu trữ phiên bản cơ sở dữ liệu vào bảng tùy chọn để chúng tôi có thể so sánh chúng trong quá trình cập nhật plugin trong trường hợp bảng tùy chỉnh của chúng tôi cần cập nhật. Để làm như vậy, chúng ta chỉ cần thêm dòng này ngay sau khi tạo bảng bằng hàm 4 6Cập nhật lược đồ bảngSử dụng ví dụ tương tự như trên, giả sử trong quá trình phát triển, chúng tôi thay đổi ý định và chúng tôi cũng muốn lưu trữ số điện thoại của khách hàng trong bảng của mình. Những gì chúng tôi có thể làm là kích hoạt cập nhật lược đồ bảng trong quá trình cập nhật plugin của chúng tôi. Vì 26 sẽ không được kích hoạt trong quá trình cập nhật plugin, thay vào đó, chúng tôi có thể kết nối với hành động 04 để thực hiện kiểm tra phiên bản cơ sở dữ liệu và cập nhật lược đồ bảng nếu cầnĐầu tiên, chúng tôi thêm chức năng nâng cấp tùy chỉnh của mình vào móc 04 7Các chức năng thực tế cần phải làm một vài điều
Phần lớn, chúng ta thực sự có thể sử dụng lại hàm 29 như chúng ta đã làm ở trên, với một số sửa đổi nhỏ 8Lưu ý rằng chúng ta không cần sử dụng câu lệnh 08, vì 4 sẽ lấy câu lệnh SQL của chúng ta, so sánh nó với các bảng hiện có và thực hiện sửa đổi cho phù hợp. Khá tiện dụngPhần kết luậnWordPress không bị giới hạn trong việc tạo các trang web đơn giản vì nó đang nhanh chóng chuyển sang một khung ứng dụng chính thức. Mở rộng WordPress thông qua các loại bài đăng tùy chỉnh và phân loại tùy chỉnh nên là ưu tiên chính của chúng tôi. Tuy nhiên, khi chúng tôi cần kiểm soát tốt hơn dữ liệu của mình, thật yên tâm khi biết rằng chính WordPress cung cấp nhiều chức năng và lớp khác nhau như 3 để các nhà phát triển sử dụng. Đây là những gì làm cho WordPress trở thành một giải pháp trưởng thànhChia sẻ bài viết nàyFirdaus Zahari Firdaus Zahari là một nhà phát triển web đến từ Malaysia. Niềm đam mê của anh ấy xoay quanh (nhưng không giới hạn) WordPress và phát triển giao diện người dùng Wpdb được định nghĩa ở đâu trong WordPress?Để thực hiện các thao tác cơ sở dữ liệu, WordPress cung cấp một lớp wpdb có trong tệp – wp-includes\wp-db. php . Lớp này tóm tắt các chức năng cơ sở dữ liệu cho WordPress và hầu hết các chức năng của WordPress trực tiếp hoặc gián tiếp sử dụng lớp này.
Làm cách nào để lưu trữ dữ liệu trong cơ sở dữ liệu bằng WordPress?Trong phpMyAdmin, chọn cơ sở dữ liệu WordPress của bạn rồi nhấp vào bảng wp_wpforms_entries. . Tại đây, bạn có thể tìm thấy tất cả các mục nhập biểu mẫu của mình trong cột trường Bạn có thể làm nhiều thứ ở đây như tạo bảng. . Hãy xem cách quản lý các mục nhập biểu mẫu trên trang web WordPress của bạn Làm thế nào để sử dụng cơ sở dữ liệu WordPress?Cách tối ưu hóa cơ sở dữ liệu WordPress . Vào Hosting -> Quản lý Truy cập Cơ sở dữ liệu -> phpMyAdmin -> Nhập phpMyAdmin Trong phần Cấu trúc, nhấp vào Kiểm tra tất cả -> Tối ưu hóa bảng |