WordPress _GET chuỗi truy vấn từ URL

Đ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ụ

https://www.example.com/?example_parameter=example_value

Vă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ức

Cấ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

WordPress _GET chuỗi truy vấn từ URL
Kiểm soát chuỗi truy vấn trong thanh bên cài đặt khối (v1. 7)

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

  1. 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
  2. Đ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ị
  3. 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

WordPress _GET chuỗi truy vấn từ URL

Định cấu hình điều khiển Chuỗi truy vấn (v1. 9)
  1. Tiếp theo, sử dụng khối Nút để tạo nút có liên kết
https://blockvisibilitywp.com/knowledge-base/how-to-use-the-query-string-control/?docs=query-string-test#how-to-configure

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ện

Truy 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ấn

Tô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(`https://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. 🪐

Làm cách nào tôi có thể lấy tham số từ chuỗi URL?

Các tham số từ một chuỗi URL có thể được truy xuất trong PHP bằng cách sử dụng các hàm parse_url() và parse_str() . Ghi chú. URL trang và các tham số được phân tách bằng dấu ? . hàm parse_url(). Hàm parse_url() được sử dụng để trả về các thành phần của URL bằng cách phân tích cú pháp URL đó.

Get_query_var trong WordPress là gì?

get_query_var() chỉ truy xuất các biến truy vấn công khai được WP_Query nhận dạng . Điều này có nghĩa là nếu bạn tạo các URL tùy chỉnh của riêng mình với các biến truy vấn của riêng chúng, get_query_var() sẽ không truy xuất chúng nếu không thực hiện thêm một số thao tác (xem bên dưới).

Làm cách nào để biết liệu một URL có chuỗi truy vấn hay không?

Để kiểm tra xem một url có tham số truy vấn hay không, gọi phương thức bao gồm () trên chuỗi, chuyển cho nó một dấu chấm hỏi làm tham số . g. str. bao gồm('? '). Nếu url chứa tham số truy vấn, phương thức bao gồm sẽ trả về true, nếu không thì trả về false.

Cái gì được sử dụng để trích xuất các tham số truy vấn từ URL?

Các tham số truy vấn được trích xuất từ ​​các tham số truy vấn URI yêu cầu và được chỉ định bằng cách sử dụng javax. ws. rs. Chú thích QueryParam trong các đối số tham số của phương thức .