使用设置API显示错误

时间:2011-11-18 作者:mos fetish

我没有使用完整的设置api,只使用以下代码:

register_setting( \'my_options\', \'my_options\', \'my_options_validate\' );
然后我的验证:

  $options = get_option(\'my_options\');

  if(error_found){

    add_settings_error( \'my_options\', \'settings_updated\', \'error_message_here\', \'error\');

  }

  return $options;
但回发时不会显示任何错误。所以我的问题是:

简单设置错误消息是否会导致其显示?我是否必须使用完整设置api才能显示错误?我是否已采取措施禁用回发时的“设置已更新”消息?

我尝试使用settings\\u errors,但没有显示错误。

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

否,您需要添加对settings\\u errors的调用

/**
 * Displays all messages registered to \'your-settings-error-slug\'
 */
function your_admin_notices_action() {
    settings_errors( \'your-settings-error-slug\' );
}
add_action( \'admin_notices\', \'your_admin_notices_action\' );
否则,将不会显示您添加的错误。您可能还想检查error\\u found是否为true。我认识到它不是wordpress常量,所以我假设它是您代码的一部分(并且尚未设置)(而且,它在开始时缺少$)。

也有可能没有发生错误,或者您的验证允许无效案例通过。

SO网友:Borgboy

我在开发ArticleForge WordPress插件时遇到了类似的问题。我不想让错误的输入进入数据库,但我想让用户有机会更正他们的输入。所以,经过许多创造性的过程,我确实想出了一个有效的方法。您不必执行wp\\u重定向或die()。它的主要要点是,在验证过程中,将用户输入切换为现有选项的输入,然后返回这些值。

你可以退房my blog post 有关我遵循的流程的详细描述。

结束

相关推荐