我正在学习如何创建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管理员中测试表单时,当我在表单中插入数据并单击更新按钮时,没有出现“更新消息”。
所以我的问题是当人们在表单中插入数据并单击“提交”按钮时,如何显示“更新消息”或“错误消息”。
非常感谢你的帮助!
答案 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,则会自动显示该消息。当然,另一种选择是有条件地添加消息。即,检查表单是否已提交,如果是,请在表单开头,即页面标题后面回显消息。