我正在创建一个带有管理面板的插件来保存配置,并且来自的 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,并在保存数据后重定向到原始页面?
我没有看到处理此问题的官方方法,但 phpcs 确实抱怨直接使用超级全局变量,例如$_SERVER,并且似乎对此感到满意:
if ( 'POST' !== filter_input( INPUT_SERVER, 'REQUEST_METHOD', FILTER_SANITIZE_STRING ) ) {
// Do something.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1928 次 |
| 最近记录: |