主题选项页面未显示在管理菜单中

时间:2014-12-24 作者:Drav\'

我目前正在开发一个WordPress主题,并希望它有一个首选项窗格,以指定用户的谷歌分析跟踪代码,例如。

按照我在Codex和多个教程中得到的说明,这段代码放置在函数中。php文件应创建“Appearence”部分的子菜单,如果用户具有“manage\\u options”功能,则显示“Theme preferences”或“You shall not pass”如果没有。

// Add theme settings link in the admin section menu

function add_appearance_menu() {
    add_theme_page(\'Theme preferences\', \'Theme pref.\', \'manage-options\', \'interact-theme-settings\', \'render_theme_settings\');
}

add_action(\'admin_menu\', \'add_appearance_menu\');

// Render theme settings page

function render_theme_settings() {
    if (!current_user_can(\'manage_options\')) {
    wp_die(__(\'You shall not pass.\'));
    }
    echo "Theme preferences";
}
但是,当我尝试手动访问页面时,我的“管理”菜单中不会出现任何新内容(http://mydomain.com/wp-admin/themes.php?page=interact-theme-settings), 它显示以下错误消息:

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

。。。无论如何,这不是我在render-theme\\u settings()函数中指定的“您不应该传递”消息。

有人能解释一下我的代码有什么问题吗?提前感谢您的帮助:)

编辑:我想指出,当然,我测试所有这些的用户都具有“manage\\u options”功能。

1 个回复
最合适的回答,由SO网友:shanebp 整理而成

manage-options 应该是manage_options.尝试以下操作:

 add_theme_page(\'Theme preferences\', \'Theme pref.\', \'manage_options\', \'interact-theme-settings\', \'render_theme_settings\');

结束

相关推荐