我绝望了,我东奔西跑寻找解决方案,但似乎找不到。问题是我试着用wordpress做一个插件来注册一些简单的设置。代码如下:
add_action('admin_menu', 'test_plugin_setup_menu');
function test_plugin_setup_menu(){
add_action( 'admin_enqueue_scripts', 'wp_enqueue_media' );
add_action( 'admin_init', 'register_my_cool_plugin_settings' );
add_menu_page( 'Menù della settimana', 'Menù della settimana', 'administrator', 'settimana', 'my_cool_plugin_settings_page');
}
function register_my_cool_plugin_settings() {
register_setting( 'my-cool-plugin-settings-group', 'image_url' );
register_setting( 'my-cool-plugin-settings-group', 'date' );
}
function goddamit() {
return 'edit_posts';
}
add_filter( 'option_page_capability_settimana', 'goddamit' );
function my_cool_plugin_settings_page() { ?>
<div class="wrap">
<h2>Menù della settimana</h2>
<form method="post" action="options.php">
<?php settings_fields( 'my-cool-plugin-settings-group' ); ?>
<?php do_settings_sections( 'my-cool-plugin-settings-group' ); ?>
<table class="form-table">
<tr valign="top">
<div>
<label for="image_url">Carica pdf</label>
<input type="text" name="image_url" id="image_url" class="regular-text" value="<?php echo esc_attr( get_option('image_url') ) ?>">
<input type="button" name="upload-btn" id="upload-btn" class="button-secondary" value="Carica pdf">
</div>
</tr>
<tr valign="top">
<div>
<label for="date">Date (inserire 'dal x al y di mese')</label>
<input type="text" id="date" name="date" value="<?php echo esc_attr( get_option('date') ); ?>" />
<div>
</tr>
</table>
<p class="submit">
<input name="Submit" type="submit" class="button-primary" value="<?php esc_attr_e('Save Changes'); ?>" />
</p>
</form>
</div>
<?php } ?>到目前为止还不错,如果用户是管理员没有问题,如果用户是一个编辑器,你会得到一个该死的错误‘欺骗’嗯?‘。我做错了什么?
每个人都建议函数option_page_capability_应该有页面的插件,它确实有,它仍然不能工作。帮助。
发布于 2016-07-27 05:27:04
通过在add_menu_page调用中将功能设置为administrator,您还希望得到什么?
add_menu_page( 'Menù della settimana', 'Menù della settimana', 'administrator', 'settimana', 'my_cool_plugin_settings_page');将其设置为edit_posts
add_menu_page( 'Menù della settimana', 'Menù della settimana', 'edit_posts', 'settimana', 'my_cool_plugin_settings_page');去掉那个奇怪的过滤器。
发布于 2021-02-02 15:55:40
已经有几年了,但今天我也遇到了同样的问题。
我使用组设置的名称来解决这个问题,而不是使用菜单页面的slug。
add_filter( 'option_page_capability_yourgroupsettingsname', 'yourfunction' );干杯!
https://stackoverflow.com/questions/38599507
复制相似问题