在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

我想要做的是能够链接此页面,但是我发现我必须对链接进行硬编码,原因是缺乏更好的方法来进行链接,而我正在开发站点上。因此,我想知道如何动态生成在浏览器中看到的链接,以便在将该插件代码复制到生产服务器时可以正常工作。即,是否有一个WordPress函数将生成子菜单页面创建的链接部分。

page=edit_record_page

另外,如果我想将查询字符串附加到链接的链接上,就像手动添加它一样简单:

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

还是也有合适的WordPress功能呢?

Answers:


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()的示例吗?像这样的内联?
本·拉西科特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.