ในส่วนผู้ดูแลระบบของ WordPress ฉันจะเชื่อมโยงไปยังหน้าเมนูย่อยที่สร้างขึ้นสำหรับปลั๊กอินได้อย่างไร


10

ดังนั้นฉันกำลังพยายามสร้างปลั๊กอิน WordPress และฉันได้สร้างหน้าเมนูบางส่วนโดยใช้ฟังก์ชั่นที่มีให้:

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

และเมื่อฉันไปที่หน้าฉันสังเกตเห็นบนแถบที่อยู่บนเบราว์เซอร์มันอ่านสิ่งนี้:

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

สิ่งที่ฉันต้องการจะทำคือการสามารถเชื่อมโยงหน้านี้ แต่ฉันพบว่าฉันต้อง hardcode ลิงก์สำหรับการขาดวิธีที่ดีกว่าในการทำมันและฉันกำลังทำงานบนไซต์ dev ดังนั้นฉันจึงสงสัยว่าฉันจะสร้างลิงค์ที่ฉันเห็นบนเบราว์เซอร์ของฉันได้อย่างไรเมื่อฉันคัดลอกโค้ดปลั๊กอินนี้ไปยังเซิร์ฟเวอร์ที่ใช้งานจริงมันจะทำงานได้ กล่าวคือมีฟังก์ชั่น WordPress ที่จะสร้างส่วนลิงก์ของหน้าเมนูย่อยที่สร้างขึ้น

page=edit_record_page

นอกจากนี้หากฉันต้องการผนวกสตริงข้อความค้นหาไปยังลิงก์ไปยังลิงก์นั้นง่ายกว่าการเพิ่มด้วยตนเองเช่น:

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

หรือว่ามีฟังก์ชั่น WordPress ที่เหมาะสมสำหรับการทำเช่นนั้น?

คำตอบ:


16

admin_url()รับ URL หน้าการดูแลระบบที่ถูกต้อง (และnetwork_admin_url()เพื่อให้ได้หน้า URL การดูแลระบบเครือข่าย)

คุณสามารถใช้add_query_arg()เพื่อผนวกอาร์กิวเมนต์ไปยัง URL โดยใช้อาร์เรย์ที่เชื่อมโยง:

$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>


วิธีนี้ใช้ได้ผลอย่างไรก็ตามคุณสามารถแสดงตัวอย่างของการใช้ admin_url (); แบบอินไลน์เช่นนี้?
Ben Racicot
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.