我没有权限保存我自己创建的主题选项?

时间:2011-05-09 作者:janoChen

我根据教程创建了一个选项面板。

但每次尝试保存设置时,我都会得到以下结果:

您没有足够的权限访问此页面。

有什么建议可以解决这个问题吗?

(不确定这是否有用,但我正在使用Wordpress 3.1.2)

EDIT:

如果我将代码直接放置在functions.php 我的主题文件夹中的文件。

我把文件放进去了functions/custom-functions.php. 我必须更改“标题位置”,不确定如何更改:

function mytheme_add_admin() {
    global $themename, $shortname, $options;

    if ( $_GET[\'page\'] == basename(__FILE__) ) {
        if ( \'save\' == $_REQUEST[\'action\'] ) {
            foreach ($options as $value)
                update_option( $value[\'id\'], $_REQUEST[ $value[\'id\'] ] );

            foreach ($options as $value) {
                if( isset( $_REQUEST[ $value[\'id\'] ] ) )
                    update_option( $value[\'id\'], $_REQUEST[ $value[\'id\'] ]  );
                else
                    delete_option( $value[\'id\'] );
            }
            header("Location: admin.php?page=functions.php&saved=true");
            die;
        }
        else if ( \'reset\' == $_REQUEST[\'action\'] ) {
            foreach ($options as $value)
                delete_option( $value[\'id\'] );

            header("Location: admin.php?page=functions.php&reset=true");
            die;
        }
    }
    add_menu_page($themename, $themename, \'administrator\', basename(__FILE__), \'mytheme_admin\');
}

2 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

您正在使用“管理员”角色添加菜单页。您使用的帐户是管理员吗?

注:

1) 您应该使用适当的功能,而不是用户角色。通常,编辑主题选项的适当功能是edit_theme_options.

2) WordPress有一个已知的bug,manage_options 需要在上提交表单options.php, 主题设置页面使用。这只是编辑器下面的用户角色的问题,有望在3.2或3.3中解决。

3) 如果这是一个公共主题,您应该使用add_theme_page() (将子菜单添加到“外观”菜单),而不是add_menu_page() (这将添加顶级菜单页)。

4) 那篇教程已经相当过时了。

SO网友:Ruturaj Patki

您需要在代码中进行两次更改。。。

更改的第三个参数add_menu_page 从…起"administrator""edit_theme_options".header("Location:") 代码行到

header("Location: admin.php?page=" . basename(__FILE__) . "&saved=true");

请进行类似的重置更改。

结束

相关推荐

从前端保存主题选项(options.php)

我试图从前端保存一个选项,但我还找不到如何保存<因此,我们的想法是为博客所有者提供一个简单的表单,其中包含一个下拉列表,可以选择不同的样式表。css。我已经为wp管理区域构建了它,它运行良好,但我想在前端也这样做,我已尝试包括wp管理/选项。我将表单发布到“wp admin/options.php”,但它在wp admin/options页面中重定向了我。这是前端表单:<form id=\"save-theme\" name=\"save-theme\" action=\"/wp-admin/