观点:我喜欢ajax交互。删除是在服务器端完成的廉价、快速的事情,重新加载整个页面需要很长时间/意见
如果您要使用重定向并希望显示错误消息,那么有几个选项。
1。使用重定向url本身将信息传递给下一个请求
类似这样:
wp_safe_redirect(\'your_plugin_url?msg=\' . $message_code);
在视图中:
$messages = array(
\'1\' => \'Success!\',
\'2\' => \'Something went wrong :(\'
);
$msg_id = isset($_GET[\'msg\']) ? $_GET[\'err\'] : 0;
if (array_key_exists($msg_id, $messages)) {
echo $messages[$msg_id];
}
2。使用$\\u会话传递数据
放置
session_start()
在插件的早期初始化过程中,确保在发送任何页面输出之前运行插件。
然后在会话中记录错误或成功消息:
$_SESSION[\'painting_delete_msg\'] = \'success! woot!\';
wp_safe_redirect(\'your_plugin_url\');
然后在页面中:
if (isset($_SESSION[\'painting_delete_msg\'])) {
echo $_SESSION[\'painting_delete_msg\'];
unset($_SESSION[\'painting_delete_msg\']);
}
The
unset
确保错误不会重复。
3。不要使用重定向
case "delete":
ob_clean();
ob_start();
$status = Myplugin_Painting_Info::delete($request["painting_id"]);
include_once( "partials/myplugin-admin-paintings.php" );
break;
case "show":
include_once( "partials/myplugin-admin-paintings.php" );
break;
// myplugin-admin-paintings.php
if (isset($status)) {
echo $status->message;
}