如何在我的插件管理页面之间发送少量数据?

时间:2015-09-17 作者:Artaban

我有一个插件,可以在管理菜单中创建两个页面:

/wp-admin/admin.php?page=list-records

/wp-admin/admin.php?page=add-edit-record
我经常使用“将编辑记录添加到”create 并将其放入wp数据库。另一方面,页面列表记录lists all the records 我已经创建了plus允许我delete record. 我想让添加编辑记录也load 数据库中的某些现有记录edit it (当然,事后保存)。但是,我如何调用add edit record来提供我要打开并处理的记录的信息呢?

我的想法(可能很天真)是将编辑记录的ID保存在wp数据库的某个配置选项中,并在打开“添加编辑记录”页面时始终检查该项,这在我看来非常复杂。或者使用某些数据作为参数调用add edit record page,如

/wp-admin/admin.php?page=add-edit-record&edit-id=999
但在这里,我不知道如何在添加编辑记录页面中获取此参数。

也许我的想法完全错了,所以任何建议都将不胜感激。谢谢

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

继续你的最后一个想法-生成如下URL:

$raw_url = admin_url( \'admin.php?page=add-edit-record&edit-id=\' . $id );
$esc_url = esc_url( $raw_url ); // For href attributes and the like
然后在处理程序中add-edit-record:

if ( ! empty( $_GET[\'edit-id\'] ) && $id = absint( $_GET[\'edit-id\'] ) ) {
    if ( ! $record = get_record( $id ) )
        wp_die( \'Nope\' ); // Or something similar
}