45
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi đang cố gắng chuyển một tham số cho trang web WordPress bằng URL - ví dụ:
www.fioriapts.com/?ppc=1
sẽ là URL.
Tôi đang có ý định viết một hàm trong tệp function.php nhưng cơ học về cách trích xuất một tham số trong WordPress là ngoài tôi. Tôi đang tìm rất nhiều ví dụ về cách thêm tham số vào URL bằng cách sử dụng hàm add_query_arg[]
nhưng không tìm thấy gì về cách trích xuất một tham số. Cảm ơn trước sự giúp đỡ nào.
Marc
4.4413 Huy hiệu vàng40 Huy hiệu bạc59 Huy hiệu đồng3 gold badges40 silver badges59 bronze badges
Đã hỏi ngày 30 tháng 11 năm 2012 lúc 20:23Nov 30, 2012 at 20:23
Tại sao không chỉ sử dụng chức năng WordPress get_query_var[]
? Tài liệu tham khảo mã WordPress
// Test if the query exists at the URL
if [ get_query_var['ppc'] ] {
// If so echo the value
echo get_query_var['ppc'];
}
Vì get_query_var chỉ có thể truy cập các tham số truy vấn có sẵn cho wp_query, để truy cập một truy vấn tùy chỉnh như 'ppc', bạn cũng sẽ cần đăng ký biến truy vấn này trong plugin hoặc ____10 của bạn bằng cách thêm hành động trong quá trình khởi tạo:
add_action['init','add_get_val'];
function add_get_val[] {
global $wp;
$wp->add_query_var['ppc'];
}
Hoặc bằng cách thêm một móc vào bộ lọc query_vars:
function add_query_vars_filter[ $vars ]{
$vars[] = "ppc";
return $vars;
}
add_filter[ 'query_vars', 'add_query_vars_filter' ];
Đã trả lời ngày 22 tháng 2 năm 2018 lúc 15:12Feb 22, 2018 at 15:12
MarcmarcMarc
4.4413 Huy hiệu vàng40 Huy hiệu bạc59 Huy hiệu đồng3 gold badges40 silver badges59 bronze badges
6
Đã hỏi ngày 30 tháng 11 năm 2012 lúc 20:23
Tại sao không chỉ sử dụng chức năng WordPress get_query_var[]
? Tài liệu tham khảo mã WordPress
$variable = $_GET['param_name'];
//Or as you have it
$ppc = $_GET['ppc'];
Vì get_query_var chỉ có thể truy cập các tham số truy vấn có sẵn cho wp_query, để truy cập một truy vấn tùy chỉnh như 'ppc', bạn cũng sẽ cần đăng ký biến truy vấn này trong plugin hoặc ____10 của bạn bằng cách thêm hành động trong quá trình khởi tạo:
if [isset[$_GET['ppc']]] {
$ppc = $_GET['ppc'];
} else {
//Handle the case where there is no parameter
}
Hoặc bằng cách thêm một móc vào bộ lọc query_vars:
Đã trả lời ngày 22 tháng 2 năm 2018 lúc 15:12
MarcmarcNov 30, 2012 at 20:34
Khi truyền tham số qua URL, bạn có thể truy xuất các giá trị dưới dạng tham số.Grambot
Dùng cái này:5 gold badges29 silver badges43 bronze badges
8
Tuy nhiên, hãy an toàn hơn khi kiểm tra biến trước:
/**
* Gets the request parameter.
*
* @param string $key The query parameter
* @param string $default The default value to return if not found
*
* @return string The request parameter.
*/
function get_request_parameter[ $key, $default = '' ] {
// If not request set
if [ ! isset[ $_REQUEST[ $key ] ] || empty[ $_REQUEST[ $key ] ] ] {
return $default;
}
// Set so process it
return strip_tags[ [string] wp_unslash[ $_REQUEST[ $key ] ] ];
}
Dưới đây là một chút đọc trên get/post params bạn nên xem: //php.net/manual/en/reserved.variables.get.php
EDIT: Tôi thấy câu trả lời này vẫn còn rất nhiều giao thông sau khi thực hiện nó. Vui lòng đọc nhận xét gắn liền với câu trả lời này, đặc biệt là đầu vào từ @EMC, người chi tiết chức năng WordPress hoàn thành mục tiêu này một cách an toàn.
- Đã trả lời ngày 30 tháng 11 năm 2012 lúc 20:34
- Grambotgrambot
- 4.2655 Huy hiệu vàng29 Huy hiệu bạc43 Huy hiệu đồng
Bạn có thể thử chức năng này
Đây là những gì đang xảy ra trong chức năngFeb 20, 2018 at 20:55
Ở đây ba điều đang xảy ra.briankip
Đầu tiên chúng tôi kiểm tra xem khóa yêu cầu có mặt hay không. Nếu không, thì chỉ cần trả về một giá trị mặc định.2 gold badges22 silver badges26 bronze badges
Nếu nó được đặt, thì trước tiên chúng tôi loại bỏ các dấu gạch chéo bằng cách thực hiện wp_unslash. Đọc ở đây tại sao nó tốt hơn Stripslashes_deep.
$parameters = $request->get_params[];
echo $parameters['ppc'];
Sau đó, chúng tôi vệ sinh giá trị bằng cách thực hiện một dải đơn giản. Nếu bạn mong đợi văn bản phong phú từ tham số, thì hãy chạy nó qua WP_KSES hoặc các hàm tương tự.
Tất cả các thông tin này cộng với thông tin thêm về suy nghĩ đằng sau chức năng có thể được tìm thấy trên liên kết này //www.intechgrity.com/correct-way-get-url-parameter-values-wordpress/11 gold badges95 silver badges102 bronze badges
Đã trả lời ngày 20 tháng 2 năm 2018 lúc 20:55May 13, 2019 at 9:49
BriankipbriankipMohan
2.4162 Huy hiệu vàng22 Huy hiệu bạc26 Huy hiệu đồng1 gold badge3 silver badges11 bronze badges