Truy vấn tùy chỉnh trong WordPress
WordPress cung cấp một loạt các chức năng sẵn sàng sử dụng mà trong hầu hết các trường hợp có thể truy xuất thông tin cần thiết từ cơ sở dữ liệu. Nhưng khi phát triển một trang web WordPress, có rất nhiều tình huống trong đó bộ lọc hoặc hành động không đủ để đạt được kết quả mong muốn. Trong những trường hợp này. WordPress cung cấp một giải pháp thay thế dưới dạng lớp 1 Show Chúng ta hãy xem cách lớp 1 có thể được sử dụngTrường hợp truy vấn tùy chỉnhGHI CHÚ. Bài viết này giả định rằng bạn có một số kiến thức về PHP và MySQL/MariaDB và đã quen làm việc với WordPress Dù bạn truy cập trang nào, WordPress sẽ chạy cái được gọi là 'truy vấn chính' để hiển thị nội dung. Vì vậy, khi bạn truy cập một trang như chế độ xem danh mục chẳng hạn, một đối tượng 1 được tạo phía sau hậu trường và truy xuất tất cả dữ liệu cần thiết từ cơ sở dữ liệu để hiển thị trangĐiều mà 1 về cơ bản cung cấp cho bạn khả năng truy xuất nội dung từ cơ sở dữ liệu trang web của bạn mà không phải sử dụng các truy vấn SQLĐể làm điều này, tất cả những gì chúng ta cần làm là xác định các đối số tương ứng với nhu cầu của chúng ta và một đối tượng 1 mới sẽ được tạo và dịch thành một truy vấn SQLMột ví dụ sử dụng WP_QueryNếu chúng tôi muốn hiển thị các bài đăng từ một danh mục cụ thể, trong một mẫu danh mục khác, thì cần phải tạo một đối tượng truy vấn mới Với mục đích của ví dụ này, chúng tôi đã kích hoạt chủ đề Twenty Twenty và tạo 2 bài đăng trong danh mục có tên 'Danh mục 1' và 2 bài đăng trong danh mục có tên 'Dịch vụ' Ngoài ra, chúng tôi đã tạo mẫu chế độ xem danh mục tùy chỉnh cho các bài đăng 'Danh mục 1'. Sên của danh mục này là 'danh mục-1' do đó, tệp trong thư mục của chủ đề phải là 6 mà trong trường hợp của chúng tôi là 7Vui lòng dán phần sau vào tệp 7________số 8_______Trước vòng lặp, chúng tôi sử dụng phương pháp 9 để xác định xem có nhiều bài đăng hơn trong vòng lặp không 0 là cần thiết để vòng lặp lặp lại các bài đăng và yêu cầu WordPress chuyển sang bài đăng tiếp theo của mảng bài đăngTại thời điểm này, giao diện người dùng của chúng tôi về danh mục (https. // mycompanyname. com/category/category-1/ ) sẽ giống như thế này Tôi biết rằng bằng cách sử dụng đoạn mã này, chúng tôi đã bỏ qua việc đưa vào nhiều thông tin bài đăng, nhưng vì lợi ích của ví dụ này, tốt hơn là giữ cho nó đơn giản và chỉ hiển thị tiêu đề bài đăng Để xem các thuộc tính đối tượng truy vấn mà WordPress đã tạo cho chế độ xem này, chúng ta chỉ cần thêm dòng này vào mã của mình sau câu lệnh 1
Bây giờ nếu bạn làm mới trang của mình, bạn sẽ thấy thông tin này trong danh sách bài đăng
Giả sử rằng chúng tôi muốn hiển thị danh sách các bài đăng thuộc danh mục 'Dịch vụ' bên dưới các bài đăng được mô tả ở trên. Vì trang đã tạo một đối tượng truy vấn cho danh mục hiện tại, nên chúng tôi sẽ phải giải quyết vấn đề này bằng cách thao tác các đối số truy vấn chính hiện có Hãy xem những cách mà WordPress cho phép chúng tôi đạt được điều này Chức năng query_postsHàm 2 là một cách để thay đổi truy vấn chính mà WordPress sử dụng để hiển thị bài đăng. Nó thực hiện điều này bằng cách đặt truy vấn chính sang một bên và thay thế nó bằng một truy vấn mới. Bạn có thể tự mình xem điều này trong tệp 3 nơi nó được giới thiệu
Chúng tôi sẽ thử và thêm một vòng lặp khác để hiển thị Bài đăng 'Dịch vụ' bằng cách thêm các dòng sau vào 4 của vòng lặp tiêu chuẩn hiện tại
Và ở đó bạn đi Tuy nhiên có một nhược điểm đối với phương pháp này. Nếu chúng tôi cố gắng in danh mục có trong đối tượng truy vấn, chúng tôi sẽ nhận thấy danh mục đó đã bị thay đổi Cố gắng chèn 5 sau truy vấn Dịch vụ và làm mới trang. Bạn sẽ thấy kết quả này
Điều này xảy ra vì truy vấn đã bị thay đổi nhưng không bao giờ được hoàn nguyên. Cách tiếp cận này có thể gây ra nhiều vấn đề với nội dung tuân theo truy vấn của chúng tôi Để tránh những xung đột này và dọn dẹp sau khi gọi tới 6, hãy gọi tới 7 và truy vấn chính ban đầu sẽ được khôi phục. Vì vậy, mã của bạn sẽ trông như thế này
Khi làm mới trang của bạn, bây giờ bạn sẽ thấy rằng danh mục trang ban đầu đã trở lại trong truy vấn
Cuối cùng, chúng ta nên đề cập rằng nên tránh sử dụng 6 vì nó làm tăng thêm chi phí hoạt động cho truy vấn của bạn vì nó thực sự khiến truy vấn chính chạy lạiHàm get_posts()Có thể đạt được kết quả tương tự khi sử dụng hàm 9 để truy xuất một mảng các bài đăng phù hợp với tiêu chí đã choThay thế vòng lặp Dịch vụ được hiển thị bên dưới…
…với cái này
Như bạn có thể thấy, lần này chúng tôi phải làm việc với id danh mục thay vì tên danh mục, theo đối số 9 được xác định bởi WordPressMột điều quan trọng khác cần lưu ý ở đây là mặc dù chúng tôi không đặt lại truy vấn, nhưng đầu ra 1 của danh mục truy vấn vẫn còn nguyên vẹn và không bị thay đổi thành 'dịch vụ'. Đó là bởi vì bản thân 9 không thay đổi truy vấn chính. Chúng tôi chỉ sử dụng một biến mới ‘______16_______3‘ để tạo một phiên bản mới của đối tượng truy vấn mà không thay thế nóHàm 9 sử dụng các tham số giống như hàm 2 và được đề xuất sử dụng khi bạn muốn thêm các vòng lặp tùy chỉnh tĩnh ở bất kỳ đâu trong mẫu của mình vì hàm này an toàn và dễ sử dụngTạo đối tượng WP_Query mới 6 là một đối tượng của lớp 1 và truy xuất nội dung cơ sở dữ liệu cần thiết cho trang hiện tại. Ghi đè lớp này là cách của chúng tôi để tùy chỉnh kết quả và hiển thị nội dung khác nhauĐây là đoạn mã chúng ta sẽ sử dụng 0Chúng tôi đã sử dụng đối số 'category_name' để xác định sên của danh mục mà chúng tôi muốn các bài đăng của danh mục đó được hiển thị Chúng tôi đã lưu đối tượng mới 8 trong biến 9Sau đó, chúng tôi sử dụng vòng lặp while để hiển thị nội dung và sau đó, chúng tôi đặt lại vòng lặp với ____18_______0 để khôi phục dữ liệu ban đầu của truy vấn chính Nếu bạn muốn thử nghiệm với các đối số khác của Lớp WordPress WP_Query, bạn có thể tìm thấy danh sách đầy đủ trên trang WordPress Codex của nó Truy vấn tùy chỉnh là gì?Truy vấn tùy chỉnh là các trang tóm tắt do người dùng xác định mở rộng chức năng của Rational® Asset Analyzer . Truy vấn tùy chỉnh là một trình bao bọc xung quanh câu lệnh chọn SQL do người dùng xác định. Sử dụng trang "Truy vấn tùy chỉnh" để xác định và thực hiện các truy vấn tùy chỉnh đối với cơ sở dữ liệu hàng tồn kho.
Làm cách nào để tạo WP_Query trong WordPress?Chúng ta chỉ cần thiết lập sao lưu dữ liệu bài đăng với * wp_reset_postdata(). */ wp_reset_postdata(); . $query2 = new WP_Query( $args2 ); // The 2nd Loop while ( $query2->have_posts() ) { $query2->the_post(); echo '
Tôi có thể sử dụng SQL với WordPress không?Thật hữu ích khi hiểu cách trang web của bạn hoạt động đằng sau hậu trường và thậm chí có thể có những lúc bạn cần truy cập trực tiếp vào cơ sở dữ liệu của trang web của mình. Đó là nơi MySQL xuất hiện. Ngôn ngữ truy vấn có cấu trúc (SQL) là hệ thống quản lý cơ sở dữ liệu của WordPress . |