关于has_cap 的支持角色和兼容性
Notice: 自 2.0 版本后,has_cap 的一个调用参数已不被建议使用!请换用 插件和主题中,用户等级的使用已不被支持。请换用角色和兼容性
如果你使用的是WP3以上的版本 而且打开了debug模式 很可能遇到这个问题 当然如果你没安装旧版本的插件 应该是遇不到这个问题的。
原因是:add_options_page 这个函数的第三个参数发生了变化,以前的版本是用一个数字,新版本是用字符,权限控制的改版!
具体那些可以使用请看官方的API文档
文档地址:http://codex.wordpress.org/Roles_and_Capabilities#manage_options
能够修改配置文件的角色是:manage_options
add_action('admin_menu', 'my_plugin_menu');
function my_plugin_menu() {
add_options_page('My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options');
}
<?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 } ?>
User Level to Role Conversion
- User Level 0 converts to Subscriber
- User Level 1 converts to Contributor
- User Level 2 converts to Author
- User Level 3 converts to Author
- User Level 4 converts to Author
- User Level 5 converts to Editor
- User Level 6 converts to Editor
- User Level 7 converts to Editor
- User Level 8 converts to Administrator
- User Level 9 converts to Administrator
- User Level 10 converts to Administrator
