WordPress functions.php - 管理员 html 注入和提交表单

WordPress functions.php - Admin html injection and submitting forms

我在左侧为我的 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 回显语句将一些信息写到页面上以打印出一些数据。

我现在想做的是让用户能够输入过滤器并按提交。这将向另一个页面发出 POST,该页面将接收 post 数据、运行 一些内容,并向屏幕输出其他内容。我只是想这会让用户完全离开 WP-ADMIN 区域(我想做的是让用户都在右窗格中,所以它看起来像是在我的新管理区域下的 WordPress 上本地发生的)

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

我认为最好的解决方案是在 functions.php 中注入的 HTML 中放置一个 iframe,然后页面可以像 WP-admin 中的正常后台一样自言自语.

谁能给我指出正确的方向?

谢谢!

考虑到您想要添加到此的用户 input/_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);
} 

documentation中提到的第四个参数应该包括menu_slug,但不一定需要[=22] =]只能是一个函数——也可以是你定义的文件。

然后,在您的 file_to_do_your_bidding.php 文件中(在您的插件中),您可以添加任何您需要的 _POST 功能。它也可以作为 administrator/whoever 与之交互的 'admin' 页面存在。

这就是您要找的吗?