Điều khiển Chuỗi truy vấn cho phép bạn hiển thị hoặc ẩn khối theo điều kiện dựa trên chuỗi truy vấn. Bạn có thể hỏi "chuỗi truy vấn" là gì?
Chà, chắc chắn bạn đã bắt gặp chúng khi duyệt internet và chúng xuất hiện sau ? trong URL. Ví dụ
//www.example.com/?example_parameter=example_valueVăn bản màu cam là một chuỗi truy vấn, được tạo thành từ một tham số và một giá trị. Bạn cũng có thể nối nhiều chuỗi bằng ký hiệu &. Chuỗi truy vấn được sử dụng cho tất cả mọi thứ, đặc biệt là cho mục đích theo dõi và tiếp thị
Chức năng này có sẵn miễn phí trong plugin Block Visibility cốt lõi, có sẵn trên WordPress. tổ chứcCấu hình
Cách bật
Nhấp vào bất kỳ khối nào trong Trình chỉnh sửa khối và điều hướng đến bảng Hiển thị. . Bạn sẽ thấy biểu tượng dấu chấm lửng dọc trong Thanh công cụ điều khiển. Xem ảnh chụp màn hình bên dưới. Nhấp vào dấu chấm lửng và tất cả các điều khiển khả năng hiển thị có sẵn sẽ xuất hiện. Chọn “Chuỗi truy vấn” và bảng điều khiển Chuỗi truy vấn sẽ được thêm vào khối
Cách cấu hình
Hướng dẫn luôn tốt hơn với các ví dụ. Giả sử rằng chúng tôi đang viết tài liệu cho điều khiển Chuỗi truy vấn và chúng tôi muốn cung cấp bản trình diễn trực tiếp. Trong ví dụ này, người dùng sẽ nhấp vào nút sẽ làm mới trang với tham số chuỗi truy vấn được áp dụng cho URL. Dựa trên chuỗi truy vấn, hiển thị một thông báo ẩn
Các bước để hoàn thành
- Sử dụng khối Đoạn văn, viết một thông báo sẽ bị ẩn bởi điều khiển Chuỗi truy vấn
- Điều hướng đến cài đặt kiểm soát Chuỗi truy vấn trong bảng Khả năng hiển thị
- Trong hộp văn bản “Truy vấn bắt buộc (Bất kỳ)”, hãy nhập tham số docs=query-string-test
Cấu hình kết quả sẽ giống với ảnh chụp màn hình bên dưới
Định cấu hình điều khiển Chuỗi truy vấn (v1. 9)
- Tiếp theo, sử dụng khối Nút để tạo nút có liên kết
Nó sẽ giống như nút bên dưới. Bây giờ, hãy nhấp vào nó và xem điều gì sẽ xảy ra
Cách vô hiệu hóa
Nếu bạn muốn tắt tùy chọn kiểm soát Chuỗi truy vấn ở cấp khối, chỉ cần nhấp vào biểu tượng dấu chấm lửng trong Thanh công cụ điều khiển và bỏ chọn tùy chọn đó. Điều đó nói rằng, nếu bạn không nghĩ rằng bạn sẽ cần kiểm soát này trên trang web của mình, thì bạn có thể tắt nó trên toàn cầu trong Cài đặt kiểm soát khả năng hiển thị trong phần Tích hợp
Lưu ý rằng nếu điều khiển này bị tắt trên toàn cầu, bất kỳ khối nào đang bị ẩn bởi điều khiển Chuỗi truy vấn sẽ hiển thị lại
Cài đặt kiểm soát
Dưới đây là các cài đặt có sẵn cho điều khiển Chuỗi truy vấn. Để điều khiển hoạt động bình thường, chỉ nhập một giá trị trên mỗi dòng trong mỗi hộp văn bản. Ba định dạng sau được chấp nhận
param=valueTham số truy vấn có giá trị cụ thể. param=*Tham số truy vấn có giá trị ký tự đại diện. (tôi. e. giá trị có thể là bất cứ thứ gì)_______10_______Tham số truy vấn không có giá trị. Hoạt động giống như một giá trị ký tự đại diệnTruy vấn bắt buộc (Bất kỳ)
Khối sẽ chỉ được hiển thị nếu URL có ít nhất một trong các chuỗi truy vấn được cung cấp
Truy vấn bắt buộc (Tất cả)
Khối sẽ chỉ được hiển thị nếu tối thiểu URL có tất cả các chuỗi truy vấn được cung cấp. Nó có thể có nhiều hơn
Truy vấn bắt buộc (Không)
Khối sẽ bị ẩn bất cứ khi nào có ít nhất một trong các chuỗi truy vấn được cung cấp trong URL. Các truy vấn “Không” được ưu tiên hơn tất cả các truy vấn khác
Khi xây dựng một điểm cuối API WordPress tùy chỉnh để lấy dữ liệu từ trang web WordPress của bạn, bạn có thể chuyển các tham số truy vấn vào URL của mình hoặc ở cuối sên để hoạt động như các biến trong các hàm API PHP của bạn (ở định dạng “?parameter-key=parameter
(Các tham số truy vấn có thể được gọi là đối số hoặc có thể bị nhầm lẫn khi được gọi là sên. )
Điều này có thể hữu ích nếu bạn muốn có một tuyến API động trỏ đến một hàm trả về các kết quả khác nhau dựa trên biến bạn nhập vào URL. Ví dụ: bạn có thể muốn sử dụng một tuyến API duy nhất để trả về các bài đăng của một “category_name” cụ thể. Đó là tuyến đường bạn sẽ sử dụng lại nhiều lần nhưng cần các “category_name” khác nhau
Hàm diễn giải các biến truy vấnTôi sẽ chỉ ra để bạn có thể thử và sao chép, nhưng mục đích của bài đăng trên blog này chỉ đơn giản là ở hàm query_posts_and_pages_with_params, được hiển thị ở đây
Hàm Lynchpin nhận các tham số/đối số truy vấn_______2_______URL mà chúng tôi sẽ chuyển sẽ làm cho chức năng này có thể sử dụng được trông giống như
https. //tên-trang web của bạn. com/wp-json/your-api-slug/v2/pages?category_name=desired-category-name
Lưu ý rằng trong phần trong URL có chứa “/your-api-slug/v2/pages”, slug “/pages” là tên do chúng tôi chọn. “trang” có thể được chọn là bất cứ thứ gì
Mấu chốt ở đây là chúng ta đang sử dụng WP_REST_Request $request cho các đối số của hàm. (Các) tham số truy vấn / (các) biến được lưu trữ trong $request. . Ở định dạng trên, biến $request chứa các tham số của chúng ta. Chúng tôi có thể chỉ định tham số mà chúng tôi muốn chọn bằng cách sử dụng mũi tên đối tượng PHP ->
Thực tế là chúng tôi đã chuyển 'category_name' làm khóa biến truy vấn cho phép chúng tôi sử dụng hàm get_param() để truy xuất giá trị được đính kèm với khóa này. ‘category_name’ là tên khóa được chọn. Tên có thể là bất kỳ tên nào, nhưng ‘category_name’ rất dễ nhớ và có ý nghĩa vì nó giống với tên của khóa WordPress thực được gọi là ‘category_name’
Trong lệnh gọi JavaScript Axios, định dạng động có thể giống như bên dưới
JavaScriptfunction getPages(apiQueryParam){const pages = (await axios.get(`//your-site-name.com/wp-json/your-api-slug/v2/pages?category_name=${apiQueryParam}`)).data
return pages
}Mã đầy đủ
Đây là mã đầy đủ với 3 chức năng được sử dụng để truy xuất các trang theo “category_name” của chúng bằng cách sử dụng định tuyến API động và các biến truy vấn
PHPregister_rest_route( 'your-sites-api-route-name/v2', '/pages[or your chosen slug for api]', array('methods' => 'GET',
'callback' => 'query_posts_and_pages_with_params'
) );function query_posts_and_pages_with_params(WP_REST_Request $request) {
$arg = $request->get_param( 'category_name' );
return query_posts_and_pages($arg);
}function query_posts_and_pages($category_name){
$args = array(
'post_type' => array('post', 'page'),
'showposts' => '100',
'category_name' => $category_name,
'order' => 'DESC',
'orderby' => 'date',
);
return fetchByPostTypeAndTax($args);
}function fetchByPostTypeAndTax($args) {
// Run a custom query
$meta_query = new WP_Query($args);
if($meta_query->have_posts()) {
//Define an empty array
$data = array();
// Store each post's data in the array
while($meta_query->have_posts()) {
$meta_query->the_post();
$id = get_the_ID();
$post = get_post($id);
$link = get_permalink($id);
$featured_image = get_the_post_thumbnail_url($id);
$post_object = (object) [
'id' => $post->ID,
'title' => (object) ['rendered' => $post->post_title],
'date' => $post->post_date,
'slug' => $post->post_name,
'link' => $link,
'featured_img_url' => $featured_image,
'image' => get_the_post_thumbnail_url($post->ID),
'excerpt' => (object) ['rendered' => get_the_excerpt()]
];
$data[] = $post_object;
}
// Return the data
return $data;
} else {
// If there is no post
return 'No post to show';
}
} Thế là xong
Chúc may mắn với lệnh gọi API của riêng bạn. Tôi mất một chút thời gian để tìm ra cách sử dụng các biến truy vấn. Tôi hy vọng blog này sẽ giúp bạn thành công. 🪐