我创建了一个新的自定义插件,它添加了一个新的管理菜单来显示事件列表。当您单击任何给定的事件时,我想将您发送到我的插件中的另一个页面,然后该页面将呈现有关此事件的信息。我可以保持简单并只使用查询字符串参数,因此不需要进行表单POST,但我也会对此感兴趣。
有两页:
我在基页的设置(reservation-management.php):
add_action( 'admin_menu', 'addReservationManagementMenuItem' );
function addReservationManagementMenuItem(){
add_menu_page('Reservation Management', 'Reservation Management', 'manage_options', 'reservation_management_slug', 'reservation_management_building_function','',3);
}
在构建第一个屏幕的功能中,我渲染了一些可点击的链接。简化:
function reservation_management_building_function(){
if(!current_user_can('manage_options')){
?>
<h2>Clickable Link</h2>
<?php echo("<a href='reservation-management-details.php?id=$id'>Event</a>"); ?>
<?php
}
}
?>
我只是简化了代码,删除了一些循环逻辑等,但是它工作并在循环中呈现所有事件的url of reservation-details.php?id = x其中x是唯一的post id每个事件。
问题是,这只是将我发送到找不到的页面。我甚至尝试过像get_admin_url()等
这样的东西我认为我错过了自定义插件如何在一个页面之间发布的基本步骤,同时仍然在wp-admin中。
如何使用href将admin用户安全地发送到我的插件目录中的另一个管理页面?
谢谢!
答案 0 :(得分:1)
页面是否已在插件中声明?听起来您还需要在插件中添加子菜单页面。
示例(已编辑):
add_action( 'admin_menu', 'addReservationManagementMenuItem' );
function addReservationManagementMenuItem(){
add_menu_page('Reservation Management', 'Reservation Management', 'manage_options', 'reservation_management_slug', 'reservation_management_building_function','',3);
//add any relative submenu pages here
//you can have as many submenu pages as you need
//please keep in mind that add_submenu_page() requires a different set
//of parameters passed to it
//if you want the submenu page viewed, and your function exists on your
//plugin definition page
add_submenu_page('reservation-management-details.php', 'Reservation Management Details', 'Reservation Management Details', 'manage_options', 'reservation_management_details_slug');
//if you don't want your submenu page accessible in the submenu
//use null as the first parameter to remove it's inclusion from the submenu
//specify the php file used
add_submenu_page(null, 'Reservation Management Details', 'Reservation Management Details', 'manage_options', 'reservation-management-details.php');
}
在上面的示例中,您可以在插件中发布新页面,因为您现在已经定义了它。但有时候,我发现我不希望任何人能够访问我指定为“_POST”的页面。只有,所以我的第一个参数设置为 null 。
编辑: 我唯一能记住的就是那个POST网址需要的东西。如果您需要帮助,请告诉我,我会为您解决。
如果您有任何疑问,请与我们联系。