add_settings_error na validação da API de opções do plugin

Estou desenvolvendo um plugin que usa as opções API.

Eu definei uma class que usa uma function para desinfetar as inputs, mas quando envio o formulário de opções, exibe erros e informações duas vezes.

E também não consegui exibir as mensagens de erro.

Qual é a maneira correta de exibir as mensagens bem-sucedidas e de erro na validação das opções?

Obrigado.

register_setting( $this->plugin_slug, // option_group $this->plugin_slug, // option_name, for name property of tags [$this, 'process_inputs'] // sanitize_callback ); public function process_inputs( $input ){ // sanitize functions: // sanitize_email(), sanitize_file_name(), sanitize_html_class(), sanitize_key(), sanitize_meta(), sanitize_mime_type(), // sanitize_option(), sanitize_sql_orderby(), sanitize_text_field(), sanitize_textarea_field(), sanitize_title(), // sanitize_title_for_query(), sanitize_title_with_dashes(), sanitize_user() $options = []; if( isset( $input['frontend-font'] ) and $input['frontend-font'] == true ) { $options['frontend-font'] = true; }else{ $options['frontend-font'] = false; } if( isset( $input['backend-font'] ) and $input['backend-font'] == true ){ $options['backend-font'] = true; }else{ $options['backend-font'] = false; } // add error/update messages // check if the user have submitted the settings // wordpress will add the "settings-updated" $_GET parameter to the url if ( isset( $_GET['settings-updated'] ) ) { // add settings saved message with the class of "updated"*/ add_settings_error( 'persianfont_messages', // Slug title of setting 'wporg_message', // Slug-name , Used as part of 'id' attribute in HTML output. __( 'settings saved.', 'persianfont' ), // message text, will be shown inside styled 
and

tags 'error' // Message type, controls HTML class. Accepts 'error' or 'updated'. ); } return $options; } /** * Settings page display callback. */ function settings_page_content() { // check user capabilities if ( ! current_user_can( 'manage_options' ) ) { return; } //var_dump( wp_load_alloptions() ); // print all options // show error/update messages settings_errors( 'persianfont_messages' ); ?>

page_title); ?>

plugin_slug ); // This prints out all hidden setting fields do_settings_sections( $this->plugin_slug ); submit_button(); ?>
<?php }

Solutions Collecting From Web of "add_settings_error na validação da API de opções do plugin"

Se você estiver usando add_menu_page () ou add_submenu_page () para adicionar páginas de configuração, tente adicionar esta function em seu código:

 settings_errors(); 

Não é necessário adicionar configurações_errors ao lado do formulário
WordPress faça isso quando necessário
Então, remova a linha:

 settings_errors( 'persianfont_messages' );