Wordpress thêm truy vấn tùy chỉnh var
Carlo là một nhà thiết kế và phát triển front-end tự do. Trong những năm qua, anh ấy đã viết cho ioProgrammo, một tạp chí máy tính in của Ý và … Thông tin thêm về Carlo ↬ Show
Bản tin emailEmail (đập vỡ) của bạn
Mẹo hàng tuần về giao diện người dùng & UX.
Nhiều siêu năng lực của WordPress đến từ kiến trúc dữ liệu linh hoạt của nó, cho phép các nhà phát triển tùy chỉnh rộng rãi các cài đặt của họ với các loại bài đăng, phân loại và trường tùy chỉnh. Tuy nhiên, khi tìm kiếm, WordPress chỉ cung cấp cho chúng tôi biểu mẫu một trường thường không phù hợp và khiến quản trị viên trang web áp dụng các hệ thống tìm kiếm bên ngoài, như Tìm kiếm tùy chỉnh của Google hoặc plugin của bên thứ ba Trong bài viết này, tôi sẽ chỉ cho bạn cách cung cấp cho bản cài đặt WordPress của bạn một hệ thống tìm kiếm nâng cao cho phép người dùng tìm kiếm và truy xuất nội dung từ một loại bài đăng tùy chỉnh cụ thể, lọc kết quả theo thuật ngữ phân loại tùy chỉnh và nhiều giá trị trường tùy chỉnh Bài viết có hai phần. Đầu tiên, tôi sẽ trình bày phần giới thiệu lý thuyết về xử lý yêu cầu của người dùng, bắt đầu từ việc truyền URL, chuyển qua thực thi truy vấn và kết thúc bằng sản xuất đầu ra. Phần thứ hai của bài viết là một ứng dụng cụ thể của những gì chúng ta sẽ học trong phần đầu tiên và ở đó chúng ta sẽ xây dựng hệ thống tìm kiếm nâng cao của mình Vì vậy, hãy bắt đầu tìm hiểu một số khái niệm chính Yêu cầu người dùngKhi người dùng nhấp vào một liên kết hoặc nhập URL trỏ đến một trang của trang web, WordPress sẽ thực hiện một loạt các thao tác được mô tả rõ trong Tổng quan về truy vấn tham chiếu mã truy vấn WP. Tóm lại, đây là những gì xảy ra
Phân tích cú pháp URL được ưu tiên trước, vì vậy, hãy đi sâu vào các chuỗi và biến truy vấn Biến truy vấn WP. Mặc định và biến tùy chỉnhTrạng thái tham chiếu mã truy vấn WP tại WordPress Query Vars “Một loạt các lọ truy vấn có sẵn cho người dùng hoặc nhà phát triển WordPress sử dụng để truy vấn các loại nội dung cụ thể hoặc để hỗ trợ chức năng và thiết kế chủ đề và/hoặc plugin. ” Nói cách khác, các biến truy vấn WordPress là các biến đó trong chuỗi truy vấn xác định (hoặc ảnh hưởng) đến kết quả trong một truy vấn được thực hiện đối với cơ sở dữ liệu. Theo mặc định, WordPress cung cấp các lọ truy vấn công khai và riêng tư và Tham chiếu mã truy vấn WP xác định chúng như sau “Các lọ truy vấn công khai là những lọ có sẵn và có thể sử dụng thông qua truy vấn URL trực tiếp ở dạng7. Không thể sử dụng các lọ truy vấn riêng tư trong URL, mặc dù WordPress sẽ chấp nhận chuỗi truy vấn có các lọ truy vấn riêng tư, các giá trị sẽ không được chuyển vào truy vấn và phải được đặt trực tiếp vào truy vấn. Một ví dụ được đưa ra dưới đây. Do đó, không thể gửi qua chuỗi truy vấn các lọ riêng tư như 9, 0, 1, v.v. Kiểm tra Tham chiếu mã truy vấn WP để biết danh sách đầy đủ các lọ truy vấn tích hợpVới các biến công khai theo ý của chúng tôi (với tư cách là người dùng cũng như nhà phát triển), chúng tôi có thể tập hợp một số lượng lớn truy vấn mà không cần phát triển plugin hoặc chỉnh sửa tệp chức năng của chủ đề. Chúng ta chỉ cần tạo một URL, thêm vào chuỗi truy vấn một hoặc nhiều tham số có sẵn và WordPress sẽ hiển thị kết quả được yêu cầu cho người dùng Ví dụ: chúng ta có thể truy vấn một loại bài đăng cụ thể bằng cách thêm tham số 2 vào chuỗi truy vấn; . Chẳng hạn, chúng ta có thể tạo URL sau
WordPress sẽ truy vấn cơ sở dữ liệu và truy xuất tất cả các loại bài đăng 4 thuộc thể loại 5, trong đó 6 là phân loại tùy chỉnhThật tuyệt vời, nhưng đó không phải là tất cả. Trên thực tế, những gì chúng ta đã nói cho đến nay chỉ liên quan đến các chức năng tích hợp sẵn của truy vấn vars. WordPress cho phép chúng tôi tiến xa hơn và tạo các biến truy vấn tùy chỉnh của riêng mình Đăng ký Vars truy vấn tùy chỉnhTrước khi chúng tôi có thể sử dụng chúng, các lọ truy vấn tùy chỉnh phải được đăng ký. Chúng tôi có thể hoàn thành nhiệm vụ này nhờ bộ lọc 7. Vì vậy, hãy mở tệp chính của plugin (hoặc chức năng của chủ đề. php) và viết đoạn mã sau 4Hàm gọi lại giữ một mảng các biến làm đối số và phải trả về cùng một mảng khi các biến mới được thêm vào Bây giờ chúng ta có thể bao gồm các biến mới trong các tham số sẽ ảnh hưởng đến truy vấn. Các tham số này sẽ có sẵn trong tập lệnh của chúng tôi nhờ thẻ mẫu 8, như chúng ta sẽ thấy sau. Bây giờ là lúc để giới thiệu lớp quản lý các truy vấn trong WordPressBệ Hạ // An array of arguments $args = array( 'arg_1' => 'val_1', 'arg_2' => 'val_2' ); // The Query $the_query = new WP_Query( $args ); // The Loop if ( $the_query->have_posts() ) { while ( $the_query->have_posts() ) : $the_query->the_post(); // Your code here endwhile; } else { // no posts found } /* Restore original Post Data */ wp_reset_postdata(); 9Truy vấn cơ sở dữ liệu không phải là một nhiệm vụ dễ dàng. Đó không chỉ là vấn đề xây dựng truy vấn hiệu quả mà còn là vấn đề đòi hỏi các vấn đề bảo mật phải được tính đến cẩn thận. Nhờ Lớp 9, WordPress cho phép chúng tôi truy cập vào cơ sở dữ liệu một cách nhanh chóng (không cần phải nhúng tay vào SQL) và bảo mật ( 9 xây dựng các truy vấn an toàn đằng sau hậu trường)Tập dữ liệu được truy xuất sẽ có sẵn để sử dụng trong Vòng lặp, nhờ có nhiều phương thức và thuộc tính của lớp Hãy lấy một Vòng lặp chung làm ví dụ
Nếu bạn chưa quen với việc phát triển WordPress, bạn có thể hỏi. “Này, anh bạn. Truy vấn ở đâu? Trên thực tế, bạn không cần tạo một phiên bản mới của đối tượng 9. Lớp tự thiết lập truy vấn được thực hiện theo trang yêu cầu. Vì vậy, nếu người xem trang web yêu cầu lưu trữ danh mục, WordPress sẽ chạy truy vấn truy xuất tất cả các bài đăng thuộc danh mục cụ thể đó và Vòng lặp sẽ hiển thị chúngNhưng đây chỉ là một ví dụ cơ bản khác nhau của một truy vấn chính. Chúng ta có thể làm được nhiều hơn thế và lọc tập kết quả trả về một cách chi tiết, chỉ bằng cách chuyển một mảng tham số cho một thể hiện mới của lớp 9, như chúng ta sẽ làm trong ví dụ sau
Mọi thứ có vẻ phức tạp hơn một chút, phải không? Phiên bản mới của 9 giữ một mảng các đối số sẽ ảnh hưởng đến dữ liệu được truy xuất từ cơ sở dữ liệu. Tham chiếu mã truy vấn WP cung cấp danh sách đầy đủ các tham số, nhóm chúng thành mười bảy danh mục. Vì vậy, chẳng hạn, chúng tôi có Thông số tác giả, Thông số danh mục, chỉ một thông số Tìm kiếm ( 45), thông số Trường tùy chỉnh, v.v. (chúng tôi sẽ quay lại thông số 9 trong giây lát)Bây giờ chúng ta đã khởi tạo đối tượng 47, chúng ta có thể truy cập tất cả các thuộc tính và phương thức của nó. 48 kiểm tra xem có bài đăng nào còn được in hay không, trong khi 49 di chuyển Vòng lặp tới bài viết tiếp theo và cập nhật biến toàn cục 90Bên ngoài Vòng lặp, khi sử dụng truy vấn tùy chỉnh, chúng ta phải luôn thực hiện cuộc gọi tới 91. Hàm này khôi phục biến toàn cục 90 sau khi thực hiện truy vấn tùy chỉnh và cần thiết vì mọi truy vấn mới sẽ ghi đè lên 90. Từ Tham chiếu mã truy vấn WP“Ghi chú. Nếu bạn sử dụng `the_post()` với truy vấn của mình, bạn cần chạy `wp_reset_postdata()` sau đó để Thẻ mẫu sử dụng lại bài đăng hiện tại của truy vấn chính. ” Bây giờ hãy quay lại truy vấn args Thêm sau khi nhảy. Tiếp tục đọc bên dưới ↓ Gặp Bản tin Email Smashing với các mẹo hữu ích về giao diện người dùng, thiết kế & UX. Đăng ký và nhận “Danh sách kiểm tra thiết kế giao diện thông minh” — một bộ tài liệu PDF miễn phí với hơn 150 câu hỏi để bạn tự hỏi mình khi thiết kế và xây dựng hầu hết mọi thứ Email (đập vỡ) của bạn Mỗi tuần một lần. Mẹo hữu ích về front-end & UX. Được tin cậy bởi 190. 000 người thân thiện // An array of arguments $args = array( 'arg_1' => 'val_1', 'arg_2' => 'val_2' ); // The Query $the_query = new WP_Query( $args ); // The Loop if ( $the_query->have_posts() ) { while ( $the_query->have_posts() ) : $the_query->the_post(); // Your code here endwhile; } else { // no posts found } /* Restore original Post Data */ wp_reset_postdata(); 9 Lập luậnChúng tôi đã nói rằng lớp 9 giữ một mảng các tham số cho phép các nhà phát triển chọn chi tiết các kết quả từ cơ sở dữ liệuNhóm đầu tiên, Tham số tác giả, bao gồm các đối số cho phép chúng tôi tạo truy vấn dựa trên (các) tác giả của bài đăng (trang và loại bài đăng). Chúng bao gồm
Nếu bạn muốn lấy tất cả các bài đăng từ 90, bạn chỉ cần đặt truy vấn sau 4Nhóm thứ hai bao gồm các Tham số Danh mục, i. e. tất cả những đối số đó cho phép chúng tôi truy vấn (hoặc loại trừ) các bài đăng được chỉ định cho một hoặc nhiều danh mục
Nếu chúng tôi cần tất cả các bài đăng được gán cho danh mục 96, chúng tôi chỉ cần đặt đối số 92, như chúng tôi sẽ làm trong ví dụ sau 9Truy vấn sau đây tìm kiếm các bài đăng từ nhiều danh mục, dấu phẩy đại diện cho `OR 9Chúng tôi cũng có thể yêu cầu các bài đăng thuộc cả hai danh mục 96 và 99, cộng với ( 20AND 2Và chúng ta cũng có thể chuyển một mảng ID, như trong các ví dụ tiếp theo 4Và như vậy với các thẻ và nguyên tắc phân loại, từ khóa tìm kiếm, bài đăng, trang và loại bài đăng. Tham khảo Tham chiếu mã truy vấn WP để biết hướng dẫn chi tiết hơn về các đối số truy vấn Như chúng tôi đã nói trước đây, chúng tôi cũng có thể đặt nhiều đối số và truy xuất, ví dụ, tất cả các bài đăng trong một danh mục cụ thể 21 được viết bởi một tác giả nhất định 6Khi kiến trúc dữ liệu trở nên phức tạp hơn — và điều đó xảy ra khi chúng tôi thêm các trường tùy chỉnh và nguyên tắc phân loại vào loại bài đăng — thì có thể cần phải đặt một hoặc nhiều tham số Trường tùy chỉnh cho phép chúng tôi truy xuất tất cả các bài đăng (hoặc loại bài đăng tùy chỉnh) được gắn nhãn cụ thể . Trong thời gian ngắn, chúng ta sẽ cần thực hiện một truy vấn meta đối với cơ sở dữ liệu Truy vấn meta WordPressTham chiếu mã truy vấn WP cho chúng tôi biết rằng khi xử lý một truy vấn meta, 9 sử dụng lớp 23. Lớp này, được giới thiệu trong WordPress 3. 2, xây dựng mã SQL của các truy vấn dựa trên các trường tùy chỉnhĐể tạo truy vấn dựa trên một trường tùy chỉnh, chúng tôi chỉ cần một hoặc nhiều đối số sau
Giả sử một loại bài đăng tùy chỉnh có tên là 28. Hãy gán cho mỗi 28 một trường tùy chỉnh có tên là 40, lưu trữ tên của một vị trí địa lý. Với truy vấn meta, chúng tôi có thể truy xuất từ cơ sở dữ liệu tất cả các chỗ ở trong thành phố đã chỉ định, chỉ cần chuyển các đối số phù hợp cho truy vấn, như bạn có thể thấy bên dưới 40Khi chúng tôi đã đặt đối số, chúng tôi có thể tạo truy vấn theo cách tương tự như trước đây 41Sao chép và dán mã ở trên vào một tệp mẫu và bạn sẽ nhận được một kho lưu trữ tất cả các chỗ ở có sẵn ở Freiburg Đây là trường hợp của một trường tùy chỉnh duy nhất. Nhưng nếu chúng ta cần tạo truy vấn dựa trên nhiều trường tùy chỉnh thì sao? Đối số // An array of arguments $args = array( 'arg_1' => 'val_1', 'arg_2' => 'val_2' ); // The Query $the_query = new WP_Query( $args ); // The Loop if ( $the_query->have_posts() ) { while ( $the_query->have_posts() ) : $the_query->the_post(); // Your code here endwhile; } else { // no posts found } /* Restore original Post Data */ wp_reset_postdata(); 41Đối với loại truy vấn này, lớp 23 (và cả lớp 9) cung cấp tham số 41. Đây phải là một mảng của các mảng, như trong ví dụ sau 42Phần tử 41 là một mảng hai chiều có các mục là truy vấn meta đơn với các đối số sauArgumentTypeDescription____546stringXác định trường tùy chỉnh. 47chuỗi. mảngCó thể là một mảng chỉ khi giá trị 48 là 49, 60, 61 hoặc 62. 48stringMột toán tử so sánh. Các giá trị được chấp nhận là 64, 65, 66, 67, 68, 69, 400, 401, 49, 60, 61, 405, 406, 407, 408, 409. Nó mặc định là 64. 411stringLoại trường tùy chỉnh. Các giá trị có thể là 412, 413, 414, 415, 416, 417, 418, 419, 420. Nó mặc định là 414Nếu chúng tôi đặt nhiều trường tùy chỉnh, chúng tôi cũng phải gán đối số 422 cho phần tử 41Bây giờ chúng ta có thể xây dựng một truy vấn nâng cao hơn. Hãy bắt đầu bằng cách thiết lập các đối số và tạo một phiên bản mới của 9 43Ở đây, đối số 41 chứa hai mảng truy vấn meta và tham số thứ ba thiết lập mối quan hệ giữa các truy vấn meta. Truy vấn tìm kiếm bảng wp_posts cho tất cả các loại bài đăng 28 trong đó các trường tùy chỉnh 40 và 411 lưu trữ tương ứng các giá trị 429 và 430Hãy sao chép và dán mã vào một tệp mẫu có tên là lưu trữ-chỗ ở. php. Khi được yêu cầu, WordPress sẽ thực hiện truy vấn tìm kiếm bảng wp_posts và Vòng lặp sẽ hiển thị kết quả, nếu có Tại thời điểm này, chúng tôi vẫn đang viết mã trong tệp mẫu. Điều này có nghĩa là tập lệnh của chúng tôi là tĩnh và mỗi khi Vòng lặp chạy, nó sẽ tạo ra cùng một đầu ra. Nhưng chúng tôi cần cho phép người dùng trang web thực hiện các yêu cầu tùy chỉnh và để hoàn thành nhiệm vụ này, chúng tôi cần tạo động các truy vấn tùy chỉnh Bộ lọc 431Móc hành động 431 được kích hoạt sau khi tạo đối tượng 47, nhưng trước khi thực thi. Để sửa đổi truy vấn, chúng tôi sẽ phải nối một cuộc gọi lại tùy chỉnh tới 431Trong một ví dụ trước đó, chúng tôi đã truy vấn cơ sở dữ liệu để truy xuất tất cả các bài đăng trong danh mục 96 từ một tác giả nhất định. Trong ví dụ sau, chúng tôi sẽ chuyển các đối số tương tự cho đối tượng 47, nhưng chúng tôi sẽ không thực hiện công việc với tệp mẫu, như chúng tôi đã làm trước đây, mà chúng tôi sẽ sử dụng tệp chính của plugin (hoặc tệp . php), thay vào đó. Hãy viết khối mã sau 44Đối tượng 47 được chuyển đến hàm gọi lại theo tham chiếu, không phải theo giá trị và điều này có nghĩa là mọi thay đổi được thực hiện đối với truy vấn đều ảnh hưởng trực tiếp đến đối tượng 47 ban đầu. Tham chiếu mã truy vấn WP nói“Hành động431 cung cấp cho nhà phát triển quyền truy cập vào đối tượng Khi chúng ta đang thao tác với đối tượng 47 ban đầu, chúng ta phải chú ý đến truy vấn mà chúng ta đang thực hiện. Phương thức 443 kiểm tra xem đối tượng 47 hiện tại có phải là… (có. ) truy vấn chính. Tham chiếu mã truy vấn WP cũng cho chúng tôi biết rằng bộ lọc 431 có thể ảnh hưởng đến bảng quản trị cũng như các trang giao diện người dùng. Vì lý do này, bạn cũng nên kiểm tra trang được yêu cầu bằng thẻ điều kiện 446Móc hành động 431 được ghi lại đầy đủ và rất đáng để đọc Tham khảo mã truy vấn WP để biết mô tả chi tiết hơn và một số ví dụ về cách sử dụngBây giờ chúng ta có thể kết thúc phần giới thiệu về các công cụ chính có sẵn để xử lý các truy vấn WordPress. Bây giờ là lúc trình bày một ví dụ cụ thể về việc sử dụng chúng, xây dựng một hệ thống tìm kiếm nâng cao về nội dung trang web. Nghiên cứu trường hợp của chúng tôi được cung cấp bởi một trang web bất động sản Từ lý thuyết đến mã. Xây dựng hệ thống tìm kiếmChúng tôi sẽ làm theo các bước sau
1. Xác định cấu trúc dữ liệuMục đích của các loại bài đăng tùy chỉnh là thêm nội dung hợp lý không thể được đưa vào các bài đăng trên blog cũng như trong các trang tĩnh. Các loại bài đăng tùy chỉnh đặc biệt thích hợp để trình bày các sự kiện, sản phẩm, sách, phim, mục danh mục, v.v. Ở đây chúng tôi sẽ xây dựng một kho lưu trữ các quảng cáo bất động sản với cấu trúc sau
Chúng ta phải đăng ký loại bài đăng, phân loại tùy chỉnh và các trường tùy chỉnh và hộp meta, như thể hiện trong hình bên dưới Hình ảnh cho thấy cách trang Chỉnh sửa chỗ ở sẽ xuất hiện sau khi ba hộp meta tùy chỉnh chứa phân loại tùy chỉnh Typology và một số trường tùy chỉnh đã được đăng ký Mục tiêu của chúng tôi không phải là phân tích kiến trúc dữ liệu WordPress, vì chủ đề này đã được Daniel, Brian, Kevin, Josh và Justin đề cập ở đây trên Tạp chí Smashing. Đọc bài viết của họ nếu bạn cần ôn lại và quay lại ngay khi bạn sẵn sàng Khi chúng tôi đã xác định kiến trúc dữ liệu, đã đến lúc đăng ký vars truy vấn 2. Đăng ký các biến truy vấnTrước đó, chúng tôi đã định nghĩa các vars truy vấn là các cặp 452 sau dấu chấm hỏi trong URL. Nhưng trước khi chúng tôi có thể xử lý các cặp này trong tập lệnh của mình, chúng tôi phải đăng ký chúng trong tệp plugin hoặc chức năng. Đối với mục đích của chúng tôi, chúng tôi chỉ cần hai biến sẽ cho phép thực hiện truy vấn dựa trên các giá trị của các trường tùy chỉnh tương ứng 45Đó là nó. Chúng tôi đã thêm hai tham số để truy vấn cơ sở dữ liệu. Bây giờ, thật hợp lý khi xây dựng một URL như thế này 463. Thao tác truy vấnBây giờ, hãy thêm một khối mã mới vào tập lệnh của chúng ta 47Mã này là tổng của tất cả những gì chúng tôi đã đề cập trong phần đầu tiên của bài viết. Hàm gọi lại sẽ thoát nếu người dùng ở trong bảng quản trị, nếu truy vấn hiện tại không phải là truy vấn chính và nếu loại bài đăng không phải là 28Sau đó, hàm sẽ kiểm tra xem có bất kỳ lọ truy vấn nào mà chúng tôi đã đăng ký trước đó không. Nhiệm vụ này được hoàn thành nhờ hàm 454, hàm này truy xuất một biến truy vấn công khai từ một yêu cầu HTTP. Đọc thêm về 454 trong Tham khảo mã truy vấn WP. Nếu biến tồn tại, thì hàm gọi lại xác định một mảng cho mỗi truy vấn meta và đẩy nó vào mảng 456 đa chiềuCuối cùng, nếu có ít nhất hai truy vấn meta, thì đối số 422 được đẩy vào 456 và giá trị của nó được đặt thành 459. Sau khi thực hiện xong, phương thức 460 sẽ lưu 47 để thực hiện tiếp theoBạn không cần phải lo lắng về việc làm sạch dữ liệu ở đây, bởi vì các lớp 9 và 23 thực hiện công việc cho chúng tôi — kiểm tra mã nguồn 9 và 234. Xây dựng biểu mẫu tìm kiếmDữ liệu biểu mẫu được gửi bằng phương thức 466. Điều này có nghĩa là các thuộc tính 467 và 47 của các trường biểu mẫu được gửi dưới dạng các biến URL (i. e. dưới dạng vars truy vấn). Vì vậy, chúng tôi sẽ cung cấp cho các thuộc tính 467 của các trường biểu mẫu các giá trị giống như các vars truy vấn đã đăng ký trước đó ( 40 và 411), trong khi các giá trị trường có thể được chỉ định theo chương trình, truy xuất dữ liệu từ cơ sở dữ liệu hoặc do người dùng điền vàoTrước tiên, chúng tôi sẽ tạo một mã ngắn cho phép quản trị viên trang đưa biểu mẫu tìm kiếm vào các bài đăng và trang của trang web. Mã ngắn của chúng tôi sẽ được nối với hành động 472 48Tiếp theo, chúng ta sẽ xác định hàm gọi lại sẽ tạo HTML của biểu mẫu chứa ba trường chọn, tương ứng với phân loại tùy chỉnh và hai trường tùy chỉnh 49 473 là một mảng các thuộc tính shortcode. Bên trong chức năng, chúng tôi sẽ thêm đoạn mã sau 0Chúng tôi đã tạo một truy vấn sẽ truy xuất tất cả các loại bài đăng 28 bằng cách đặt trường tùy chỉnh có tên là 475 (dấu gạch dưới trước tên đại diện cho trường tùy chỉnh ẩn)Vòng lặp sẽ không hiển thị bất kỳ chỗ ở nào, nhưng sẽ thêm các phần tử vào mảng 476 từ giá trị trường tùy chỉnh tương ứng. Điều kiện sẽ bỏ qua trùng lặp. Nếu không có chỗ ở, việc thực hiện bị gián đoạn; Tất cả các thành phố có sẵn được hiển thị dưới dạng tùy chọn trong hộp chọnTrường biểu mẫu thứ hai vẫn là một nút chọn và nó tương ứng với phân loại tùy chỉnh 449. Các giá trị của nhóm thứ hai gồm các phần tử 477 được cung cấp bởi thẻ mẫu 480. Đây là khối mã thứ hai, tạo trường 481 mới tương ứng với phân loại 449 1 480 trả về một mảng gồm tất cả các thuật ngữ của phân loại được đặt làm đối số đầu tiên hoặc một đối tượng 484 nếu phân loại không tồn tại. Bây giờ, một lần nữa, chu kỳ 485 in ra các phần tử tùy chọnCác tùy chọn của hộp chọn thứ haiSau đó, chúng tôi xây dựng phần tử 481 cuối cùng, tương ứng với trường tùy chỉnh 411. Đây là mã 2Như bạn có thể thấy, trong trường hợp này, chúng tôi đã đặt các giá trị tùy chọn theo cách thủ công Cuối cùng, chúng ta có thể in ra biểu mẫu 3Chúng tôi đã đặt trường nhập ẩn cho truy vấn công khai 2 var. Khi người dùng gửi biểu mẫu, WordPress sẽ nhận giá trị 2 và tải kho lưu trữ. php tệp mẫu hoặc, nếu có, tệp lưu trữ-{post_type}. tập tin php. Với loại biểu mẫu này, nếu bạn định tùy chỉnh cấu trúc HTML của trang kết quả, bạn sẽ cần cung cấp tệp mẫu phù hợp nhấtHình ảnh hiển thị biểu mẫu tìm kiếm nâng cao mà chúng tôi đã xây dựng thông qua bài viết nàyTìm kiếm văn bản miễn phíBiểu mẫu chúng tôi đã tạo cho đến nay cho phép người dùng thiết lập ba bộ lọc từ một số tùy chọn được xác định trước. Bây giờ chúng tôi sẽ cải thiện hệ thống tìm kiếm bao gồm trường văn bản trong biểu mẫu để người dùng có thể tìm kiếm chỗ ở theo từ khóa tùy chỉnh. Chúng ta có thể làm điều đó nhờ đối số truy vấn 45. Vì vậy, hãy thay đổi hình thức như sau 4Nhờ có trường văn bản, chúng ta có thể truyền cho 9 một cặp khóa/giá trị mới, trong đó khóa là tham số 45 và giá trị là đầu vào của người dùng hoặc giá trị trả về của 493. Đọc “Nhận truy vấn tìm kiếm” trong Tham chiếu mã truy vấn WP để biết thêm chi tiếtMột hình thức tìm kiếm nâng cao hơnMột lưu ý cuối cùng. trong ví dụ trước của chúng tôi, chúng tôi đã thấy WordPress tải tệp mẫu lưu trữ để hiển thị kết quả của truy vấn. Đó là bởi vì chúng tôi đã không đặt đối số tìm kiếm. Khi chuỗi truy vấn chứa tham số 45, WordPress sẽ tự động tải tệp mẫu tìm kiếm, như thể hiện trong hình ảnh cuối cùng của bài đăng nàyHình ảnh hiển thị trang tìm kiếm trong Twenty FifteenSự kết luậnCác ví dụ của bài viết này nhằm chứng minh những gì có thể đạt được với các công cụ do WordPress cung cấp. Chắc chắn, biểu mẫu có thể được cải thiện bằng cách thêm các trường mới cho phép tùy chỉnh chi tiết hơn. Tuy nhiên, tôi hy vọng tôi đã cung cấp một cái nhìn khá chi tiết về các chức năng giúp xây dựng một hệ thống tìm kiếm vượt qua các giới hạn của hệ thống tìm kiếm tích hợp mà không cần các dịch vụ và plugin bên ngoài. Truy vấn var WordPress là gì?Vars truy vấn xác định truy vấn cho các bài đăng trên WordPress . Khi các liên kết cố định xấu xí được bật, các biến truy vấn có thể được nhìn thấy trong URL. Ví dụ: trong URL http. //thí dụ. com/?p=1 var truy vấn p được đặt thành 1, sẽ hiển thị một bài đăng có ID là 1.
Add_query_arg là gì?add_query_arg( $args ). sợi dây. Truy xuất chuỗi truy vấn URL đã sửa đổi . |