web-dev-qa-db-fra.com

Comment utiliser add_settings_error dans le rappel de register_setting

public function database_name_check($input){
    //debug
    add_settings_error('notice', 'lol', 'lol');
    if($this->wpdb->get_var($this->wpdb->prepare('SHOW DATABASES LIKE %s', $input)) == $input)
        return $input;
    else{
        add_settings_error('notice', 'lol', 'lol');
        return FALSE;
    }
}

Je ne peux pas comprendre pourquoi l'erreur ne dépasse pas, des suggestions?

1
user1692333

Regardez le prototype add_settings_error .

add_settings_error( $setting, $code, $message, $type );

Le premier argument est votre nom/clé de paramètres - ou si votre paramètre est sur une autre page (par exemple, general), il doit s'agir de la clé de page. La seconde est ce que vous souhaitez ajouter à l'attribut ID, puis le message d'erreur/mis à jour et enfin le type. Cela ne fonctionne pas parce que vous ne l'utilisez pas correctement.

Donc, vous voulez probablement ...

<?php
add_settings_error(
    'your_setting_key', // whatever you registered in `register_setting
    'a_code_here', // doesn't really mater
    __('This is the message itself', 'wpse'),
    'error', // error or notice works to make things pretty
);

Vous devez également indiquer à WordPress d’afficher vos erreurs de paramètres. Si c'est sur une page personnalisée, vous devrez inclure settings_errors dans le rappel.

settings_errors('your_setting_key');
5
chrisguitarguy