自定义插件 - 将数据从主页发布到插件中的另一个页面

Custom Plugin - Posting data from main page to another page within your plugin

我创建了一个新的自定义插件,它添加了一个新的管理菜单来显示事件列表。当您单击任何给定事件时,我想将您带到我的插件中的另一个页面,该页面将呈现有关此事件的信息。我可以保持简单,只使用一个查询字符串参数,所以不需要做一个表单 POST,但我也会对此感兴趣。

有两个页面:

  1. /my-plugin/reservation-management.php
  2. /my-plugin/reservation-management-details.php

我在底页的设置(预定-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 保留的事件-details.php?id=x其中 x 是每个事件的唯一 post ID。

事实是,这只会将我带到一个找不到的页面。我什至尝试使用 get_admin_url() 等

我想我错过了自定义插件如何在 wp-admin 中 post 从一个页面到另一个页面的基本步骤。

如何使用 href 将管理员用户安全地发送到我的插件目录中的另一个管理页面?

谢谢!

该页面是否已在插件中声明?听起来您还需要向插件添加子菜单页面。

示例(已编辑):

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 到插件中的新页面,因为您现在已经定义了它。但很多时候,我发现我 希望任何人都能访问我指定为 '_POST' 的页面,所以我的第一个参数是然后设置为 null.

编辑: 我唯一想不起来的是 POST url 应该是什么。如果您需要这方面的帮助,请告诉我,我会为您解决。

如果您有任何问题,请告诉我。