0

我在左侧为我的 WP Admin 创建了一个新的导航项:

add_action( 'admin_menu', 'addManagementMenuItem' );


function addManagementMenuItem(){

add_menu_page('Issue Management', 'Issue Management', 'manage_options', 'issue_management_slug', 'issue_management_building_function','',3);

} 


function issue_management_building_function(){

if(!current_user_can('manage_options')){

}
else {
    ?>
...
...

所以我有省略号的地方......是我的 HTML 开始的地方,我用各种 php echo 语句向页面写出一些信息以打印出一些数据。

我现在想做的是让用户能够输入过滤器并按提交。这将发布一个 POST 到另一个页面,该页面将接收发布数据,运行一些东西,并在屏幕上吐出其他东西。我只是在想这会使用户完全离开 WP-ADMIN 区域(我想做的是将用户全部保留在右窗格中,这样看起来它就在我的新管理区域下的 WordPress 上原生发生)

在上面我将大量 html 放入 functions.php 中的这种方法感觉有些不对劲 - 为自定义管理部分创建页面的方法是什么,我可以在其中执行诸如发布表单之类的操作并转到多个页面?

我在想最好的解决方案是在functions.php中的注入HTML中放置一个iframe,然后页面可以像在WP-admin中的幕后一样与自己对话。

谁能指出我正确的方向?

谢谢!

4

1 回答 1

1

考虑到您想要添加的用户输入/_POST 功能,您可能需要考虑将此功能构建为您自己的插件。我一直将自定义功能限制在 functions.php 文件中的非用户交互,但任何进一步的内容可能会更适合它自己的插件。

例如,如果您创建了一个名为nullhypothesis的插件目录:

add_action( 'admin_menu', 'addManagementMenuItem' );

function addManagementMenuItem(){
add_menu_page('Issue Management', 'Issue Management', 'manage_options', 'nullhypothesis/file_to_do_your_bidding.php', 'issue_management_building_function','',3);
} 

这是文档中提到的第四个参数,您应该包含menu_slug,但它不一定只需要是一个函数 - 它也可以是您定义的文件。

然后,在您的 file_to_do_your_bidding.php 文件中(在您的插件中),您可以添加您需要的任何 _POST 功能。它也可以作为管理员/与之交互的任何人的“管理”页面存在。

那是你要找的吗?

于 2017-11-03T04:50:20.277 回答