错误/通知创建和显示过程有几个组件:
add_settings_error()
调用将项添加到堆栈(全局$wp_settings_errors
变量)settings_errors
保持错误的暂时性,以便它们能够在页面之间移动settings_errors()
作用get_settings_errors()
从内存或瞬态中检索错误,然后显示它们
这些功能就像设置API的魅力一样,但遗憾的是,它们不是为通用而设置的。另一方面,围绕这一点进行工作是微不足道的。
钩settings_errors()
到admin_notices
在插件的页面上,将错误代码传递给它,以便它只显示您的内容。
手动将错误保存到settings_errors
瞬态(只需将全局变量填入其中)。
自从get_settings_errors()
GET参数中需要提示($_GET[\'settings-updated\']
) 它应该检查transient而不是内存,您可以提供它,也可以自己从transient中获取错误,并在settings_errors()
呼叫
Update
你把这个问题弄得一团糟,有多个问题,所以我将在这里尝试解决你的担忧。
设置APIdoes 使用不使用设置部分作为基础的管理页面。您真正的问题是,在这种情况下,错误/通知报告不起作用。
首先,以下是使用设置API发布表单时发生的情况:
将数据发布到特殊options.php
第页使用回调对这些数据进行清理/验证清理/验证过程中出现的任何错误/通知都会被收集并保存在瞬态中
您被重定向回wherever you came from.现在,当您加载管理页面时,它会检查
if this page belongs to Settings section 如果这个案子包括tiny
options-head.php
文件,用于检索和显示错误通知。
因此,在其他页面上唯一“不起作用”的是后一步,通过上面的相关函数概述,您可以轻松地完成这一步(我可能对transient进行了太多的详细介绍,对于基本情况,您不需要这样做)。