WordPress 有一些官方方法来检查请求方法吗?

Lai*_*290 5 php wordpress

我正在创建一个带有管理面板的插件来保存配置,并且来自的 url 与<form action="url" method="post">显示面板相同,我需要检查请求方法类型,我需要调用该save函数,如果请求类型是POST显示面板。

目前我正在使用这种方式来检查:

if($_SERVER['REQUEST_METHOD'] === 'POST') { }
Run Code Online (Sandbox Code Playgroud)

所以我的代码是这样的:

add_action('admin_menu', 'menu');

function menu() {
  add_menu_page('MyPlugin', 'manage_options', 'menu_item_id', 'load_page');
}

function load_page() {
  if($_SERVER['REQUEST_METHOD'] === 'POST') {
    // call the save function.
  }
  // print admin panel HTML here.
}
Run Code Online (Sandbox Code Playgroud)

我只是想知道这是否是 WP 解决问题的最佳方法,因为对我来说似乎并不优雅。

WordPress 有一些官方方法来检查请求方法吗?或者我应该将表单请求发送到另一个 URL,并在保存数据后重定向到原始页面?

Luk*_*eon 0

我没有看到处理此问题的官方方法,但 phpcs 确实抱怨直接使用超级全局变量,例如$_SERVER,并且似乎对此感到满意:

if ( 'POST' !== filter_input( INPUT_SERVER, 'REQUEST_METHOD', FILTER_SANITIZE_STRING ) ) {
    // Do something.
}
Run Code Online (Sandbox Code Playgroud)