我目前正在开发一个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”功能。
最合适的回答,由SO网友:shanebp 整理而成
manage-options
应该是manage_options
.尝试以下操作:
add_theme_page(\'Theme preferences\', \'Theme pref.\', \'manage_options\', \'interact-theme-settings\', \'render_theme_settings\');