Создание WP Plug in - PullRequest
       3

Создание WP Plug in

0 голосов
/ 02 июля 2010

Я собираюсь изучать создание плагина WP, и поэтому я читаю эту страницу - http://codex.wordpress.org/Creating_Options_Pages

Я пробую пример, приведенный на этой странице, который является кодом ниже:

<?php
// create custom plugin settings menu
add_action('admin_menu', 'baw_create_menu');

function baw_create_menu() {

    //create new top-level menu
    add_menu_page('BAW Plugin Settings', 'BAW Settings', 'administrator', __FILE__, 'baw_settings_page',plugins_url('/images/icon.png', __FILE__));

    //call register settings function
    add_action( 'admin_init', 'register_mysettings' );
}


function register_mysettings() {
    //register our settings
    register_setting( 'baw-settings-group', 'new_option_name' );
    register_setting( 'baw-settings-group', 'some_other_option' );
    register_setting( 'baw-settings-group', 'option_etc' );
}

function baw_settings_page() {
?>
<div class="wrap">
<h2>Your Plugin Name</h2>

<form method="post" action="options.php">
    <?php settings_fields( 'baw-settings-group' ); ?>
    <table class="form-table">
        <tr valign="top">
        <th scope="row">New Option Name</th>
        <td><input type="text" name="new_option_name" value="<?php echo get_option('new_option_name'); ?>" /></td>
        </tr>

        <tr valign="top">
        <th scope="row">Some Other Option</th>
        <td><input type="text" name="some_other_option" value="<?php echo get_option('some_other_option'); ?>" /></td>
        </tr>

        <tr valign="top">
        <th scope="row">Options, Etc.</th>
        <td><input type="text" name="option_etc" value="<?php echo get_option('option_etc'); ?>" /></td>
        </tr>
    </table>

    <p class="submit">
    <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
    </p>

</form>
</div>
<?php } ?>

Все просто отлично, но когда я тестирую форму в администраторе WP, когда я вставляю данные в форму и нажимаю кнопку обновления, не появляется «сообщение об обновлении».

Поэтому мой вопрос заключается в том, как сделать так, чтобы «сообщение об обновлении» или «сообщение об ошибке» появлялись, когда люди вставляли данные в форму и нажимали кнопку отправки.

Большое спасибо за вашу помощь!

1 Ответ

1 голос
/ 02 июля 2010

Я не уверен в этом, но я бы посоветовал принять вызов add_action для регистрации ваших настроек из функции baw_create_menu, чтобы они были установлены перед меню администратора. Я думаю, что admin_init запускается до admin_menu, поэтому ваша функция register_mysettings не вызывается. Но я не уверен в этом.

Кроме того, я бы предложил прочитать следующие ресурсы в API настроек WordPress:

http://codex.wordpress.org/Settings_API

http://www.presscoders.com/wordpress-settings-api-explained/

http://ottodestruct.com/blog/2009/wordpress-settings-api-tutorial/

http://planetozh.com/blog/2009/05/handling-plugins-options-in-wordpress-28-with-register_setting/

Если вы правильно используете API настроек, сообщение появится автоматически. Конечно, другой вариант - добавление сообщения по условию. Т.е. проверьте, была ли отправлена ​​форма, и если да, отобразите сообщение в начале формы, сразу после заголовка страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...