我没有使用完整的设置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,但没有显示错误。
最合适的回答,由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常量,所以我假设它是您代码的一部分(并且尚未设置)(而且,它在开始时缺少$)。
也有可能没有发生错误,或者您的验证允许无效案例通过。