問題描述

所以我試圖建立一個 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。