2010-06-11 91 views
1

我正在构建一个Wordpress插件,并且添加了一个菜单页面,用于管理与现有用户实体有点类似的“供应商”实体。WordPress的 - 插件 - 管理 - ?

我有一个类似于用户列表的列表页面,每个记录都带有编辑按钮,当我点击“编辑”按钮时,我应该带到“编辑供应商”(它没有其子菜单项管理员菜单)该供应商的页面。一切都存储在“plugins/wp_vendors”文件夹中。

问:我应该使用什么URL打开Edit页面?应该如何为Edit Vendor页面注册slug?

PS。供应商列表添加到管理员菜单,

add_menu_page('Vendors', 'Vendors', 8, 'C:\wordpress\wp-content\plugins\wp-vendors\vendors-list.php'); 

而且我可以打开

http://localhost/wp-admin/admin.php?page=wp-vendors/vendors-list.php 

列表页面谁能帮我这个?

回答

2

嗯,首先我建议修改初始add_menu_page电话:

add_menu_page('Vendors', 'Vendors', 'manage_options', 'wp-vendors', 'my_admin_page_callback'); 

用户级别参数已过时,因此最好使用功能。另外,最好使用管理页面的回调函数,因为默认情况下插件文件输出数据可能会导致意外错误。

现在,有几种方法可以做你想问的问题。您可以注册一个新的子菜单:

add_submenu_page('wp-vendors', 'Edit Vendor', 'Edit Vendor', 'manage_options', 'wp-vendors-edit', 'my_admin_edit_page_callback'); 

并且有该功能检查要编辑的供应商ID。如果不存在,请将它们重定向回主卖家菜单页面。

采用这种方法,URL应该是这样的:

http://localhost/wp-admin.php?page=wp-vendors-edit&vendor=<vendor ID> 

另一种方法就是使用URL参数,并检查是否分开管理页面回调。例如:

if((isset($_GET['action']) && $_GET['action'] == 'edit') && (isset($_GET['vendor']) && !empty($_GET['vendor']))){ 
    //You're editing a vendor. 
} else { 
    //You're listing the vendors. 
} 

然后,让这样的链接,编辑的样子:

http://localhost/wp-admin.php?page=wp-vendors&action=edit&vendor=<vendor ID>