首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >option_page_capability_不工作

option_page_capability_不工作
EN

Stack Overflow用户
提问于 2016-07-27 04:42:34
回答 2查看 286关注 0票数 0

我绝望了,我东奔西跑寻找解决方案,但似乎找不到。问题是我试着用wordpress做一个插件来注册一些简单的设置。代码如下:

代码语言:javascript
复制
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_应该有页面的插件,它确实有,它仍然不能工作。帮助。

EN

回答 2

Stack Overflow用户

发布于 2016-07-27 05:27:04

通过在add_menu_page调用中将功能设置为administrator,您还希望得到什么?

代码语言:javascript
复制
add_menu_page( 'Menù della settimana', 'Menù della settimana', 'administrator', 'settimana', 'my_cool_plugin_settings_page');

将其设置为edit_posts

代码语言:javascript
复制
add_menu_page( 'Menù della settimana', 'Menù della settimana', 'edit_posts', 'settimana', 'my_cool_plugin_settings_page');

去掉那个奇怪的过滤器。

票数 0
EN

Stack Overflow用户

发布于 2021-02-02 15:55:40

已经有几年了,但今天我也遇到了同样的问题。

我使用组设置的名称来解决这个问题,而不是使用菜单页面的slug。

代码语言:javascript
复制
add_filter( 'option_page_capability_yourgroupsettingsname', 'yourfunction' );

干杯!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38599507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档