在管理面板中处理GET或POST请求的正确方式

时间:2016-10-31 作者:user105980

我正在开发一个将在内部使用的插件(仅在管理面板内)。

我想知道构建请求(action、params等)的正确方法是什么,以及使用什么钩子来捕获这些请求。有人能帮忙吗?

2 个回复
SO网友:BlackOut

你应该发布一些代码示例,解释你想做什么,以获得更有用的答案

有各种各样的钩子,你应该使用哪一个取决于what 你需要。无论如何,在这里Codex: Actions Run During an Admin Page Request 还有这里Codex: Administrative Actions codex列出了用于管理面板请求的挂钩。

示例:如果必须在管理初始化中激活某些内容,可以使用admin_init 动作挂钩,因此代码为:add_action(\'admin_init\', \'your-custom-function\'); 如果必须在仪表板中加载页面时进行操作,可以使用load-(page) 钩例如:add_action(\'load-post.php\', \'your-custom-function\'); 等等

您可以使用管理GET和POST请求$_GET[\'x\']$_POST[\'x\'], 哪里x 是要从查询字符串中获取的变量。示例:

wp-admin/post.php?post=69
$_GET[\'post\'] == 69

SO网友:Waleed

我知道的不多,但我喜欢这种方式。

对于表单:

<form action="<?php echo esc_url( admin_url(\'admin-post.php\') ); ?>" method="POST">
<input type="hidden" name="action" value="my_action">
后端

add_action( \'admin_post_nopriv_my_action\', \'myhandler\' );
add_action( \'admin_post_my_action\', \'myhandler\' );

function myhandler(){

    // Do magic :)
    print_r($_POST);

}