mike
  • 0
Гуру

Как отладить функцию обратного вызова register_setting

  • 0

Я использую следующий код:

register_setting(
        'myplugin_options', //setting group name
        'myplugin_options', //option name that will be stored in the database
        'myplugin_validate_options'//optional callback function
);

function myplugin_validate_options($input) {
    //how can i print $input to the screen or view the output of this function for debugging purpsoses?

}

Мне просто нужно знать, как мы можем отлаживать наши функции обратного вызова проверки. Из того, что я вижу, они не могут быть выведены на экран, что затрудняет написание правильного кода внутри них.

Спасибо.

Share
  1. Грязный и единственный способ, который я основал:

    function myplugin_validate_options($input) {
        var_dump($input);
        exit;
    
    }
    
    • 0
  2. При отображении ( echo($var) ) в коде «библиотеки» (т.е. до создания страницы, как в случае с register_setting здесь) эти операторы обычно печатаются сразу после открывающего тега в HTML, но часто не отображаются там наверху. Я использую встроенную в PHP функцию error_log(), чтобы печатать все, что мне нужно, прямо в журнал ошибок PHP. Затем я могу просто открыть этот файл (обычно где-то php_error.log) и посмотреть результат. Работать на вас?

    • 0
  3. ни одно из вышеперечисленных решений не сработало для меня, я даже пробовал операторы отладки в файл.

    Работа вокруг, которая делает работу

    добавьте вызов неопределенной функции после всех ваших операторов отладки, после чего вывод будет напечатан на экране.

    • 0
  4. Настройте xdebug, единственный способ сделать реальную отладку! Какова ваша установка на разработку? Вы запускаете свой код с локального хоста или используете бродягу?

    • 0
  5. Вы можете добавить add_settings_error функцию следующим образом:

        add_settings_error(
            'plugin_settings', // Slug title of setting
            'wporg_message', // Slug-name , Used as part of 'id' attribute in HTML output.
            __( $input ), // HERE YOU CAN DEBUG YOUR CODE
            'updated' // Message type, controls HTML class. Accepts 'error' or 'updated'.
        );
    
    • 0

Оставить ответ

You must login to add an answer.