问题描述
所以我试图创建一个 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。