問題描述
所以我試圖建立一個 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
我想要做的是能夠連結這個頁面,但是我發現我不得不硬編碼連結,因為缺乏一種更好的方法,我正在開發一個網站。所以我想知道如何動態生成我在瀏覽器上看到的連結,所以當我將這個外掛程式碼複製到生產伺服器上時,它將會起作用。也就是說,是否有 WordPress 功能將生成子選單頁面建立的連結部分。
page=edit_record_page
另外,如果我想追加查詢字串到連結,就像手動新增一樣簡單:
http://mydomain.com/wp/wp-admin/admin.php?page=edit_record_page&rec_id=1
還是有適當的 WordPress 功能呢?
最佳解決方案
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'));
次佳解決方案
<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>
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。