创建WP插件

时间:2010-07-02 03:07:54

标签: wordpress

我正在学习如何创建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 个答案:

答案 0 :(得分:1)

我不确定这一点,但我建议您通过add_action调用baw_create_menu功能注册您的设置,以便在管理员菜单之前设置它。我认为admin_init在admin_menu之前触发,所以你的register_mysettings函数没有被调用。但我不确定。

另外,我建议在WordPress设置API上阅读以下资源:

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/

如果您正确使用Settings API,则会自动显示该消息。当然,另一种选择是有条件地添加消息。即,检查表单是否已提交,如果是,请在表单开头,即页面标题后面回显消息。