删除页面刷新时的管理员通知

时间:2019-04-08 作者:W.Ahmed

我有一个关于管理通知的简单问题。我想显示一条消息,如“记录更新成功”,当用户再次刷新同一页面时,此通知不应出现,因为没有记录再次更新。

与设置Api一样,也会有“设置已保存”的通知当我们刷新页面时,通知不在那里。我在URI参数中看到

http://example.com/wp-admin/admin.php?page=xyz&settings-updated=true
我知道这里settings-updated=true 是键,它会立即消失,用户很难注意到它。但我不知道它在生效后是如何消失的。我想我错过了非常简单和基本的技巧。

非常感谢您的帮助

1 个回复
最合适的回答,由SO网友:Rup 整理而成

这是由wp_admin_canonical_url:

它调用wp_removable_query_args 获取要删除的查询字符串参数列表,包括settings-updated.window.history.replaceState 从浏览器的URL栏中删除查询字符串。

<link id="wp-admin-canonical" rel="canonical"
      href="http://example.com/wp-admin/admin.php?page=xyz">
<script>
    if ( window.history.replaceState ) {
        window.history.replaceState( null, null,
            document.getElementById( \'wp-admin-canonical\' ).href +
                window.location.hash );
    }
</script>
如果要将自己的参数添加到已删除的列表中,则可以挂接removable_query_args.

相关推荐

Notices on the front-end

我正在重新发布。因为我最后的问题并不出名。我的用户正在从前端提交自定义帖子类型(项目)。当用户执行操作(例如编辑帖子)时,如何在前端显示通知(如管理板上显示的通知)。我知道有更新/提交的挂钩(post\\u updated\\u messages…)但这些在前端没有显示任何内容。我试着写了以下内容,但没用:add_filter(\'post_updated\',\'alert_user\'); function alert_user() { add_action(\'di