Trên phần Quản trị WordPress, làm cách nào để liên kết đến các trang menu con được tạo cho plugin?


10

Vì vậy, tôi đang cố gắng tạo một plugin WordPress và tôi đã tạo một số trang menu bằng chức năng được cung cấp này:

add_submenu_page('my_plugin_menu', 'Edit record page', 'Edit record page', 'manage_options', 'edit_record_page', array(&$this, 'display_edit_record_page');

và khi tôi đi đến trang tôi nhận thấy trên thanh địa chỉ trên trình duyệt, nó đọc một cái gì đó như thế này:

http://mydomain.com/wp/wp-admin/admin.php?page=edit_record_page

Những gì tôi muốn làm là để có thể liên kết trang này nhưng tôi thấy tôi phải mã hóa liên kết vì thiếu cách làm tốt hơn và tôi đang làm việc trên một trang dev. Vì vậy, tôi đã tự hỏi làm thế nào tôi có thể tự động tạo liên kết mà tôi thấy trên trình duyệt của mình để khi tôi sao chép mã plugin này vào máy chủ sản xuất, nó sẽ hoạt động. Cụ thể, có một chức năng WordPress sẽ tạo ra phần liên kết của trang menu con tạo.

page=edit_record_page

Ngoài ra, nếu tôi muốn nối các chuỗi truy vấn vào liên kết thì đơn giản như việc thêm nó theo cách thủ công như vậy:

http://mydomain.com/wp/wp-admin/admin.php?page=edit_record_page&rec_id=1

hoặc có một chức năng WordPress thích hợp để làm điều đó quá không?

Câu trả lời:


16

admin_url()giúp bạn có URL trang quản trị chính xác (và network_admin_url()để lấy URL trang quản trị mạng)

Theo tùy chọn, bạn có thể sử dụng add_query_arg()để nối các đối số vào một URL, sử dụng một mảng kết hợp:

$page       = 'edit_record_page';
$rec_id     = 1;
$record_url = add_query_arg(compact('page', 'rec_id'), admin_url('admin.php'));

3

<a href="admin.php?page=edit_record_page">Link Text</a>

<a href="admin.php?page=edit_record_page&rec_id=1">Link Text</a>


Điều này hoạt động, tuy nhiên bạn có thể hiển thị một ví dụ về việc sử dụng admin_url (); nội tuyến như thế này?
Ben Racicot
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.