我想为WordPress中的一个默认角色添加一项功能。 add_cap article建议人们在主题激活时执行此类操作,因为该设置已保存到数据库中:
注意:此设置已保存到数据库中,因此最好在主题/插件激活时运行此设置
我打算使用的功能是:
function add_theme_caps() {
$role = get_role( 'author' );
$role->add_cap( 'edit_others_posts' );
}
add_action( 'admin_init', 'add_theme_caps');
正如您所看到的,我目前正在挂钩admin_init
,导致每次访问管理区域时都会运行该功能。如何仅在主题激活上运行该功能?
答案 0 :(得分:3)
您可以使用after_switch_theme
。当然,它只会影响你的主题。
http://codex.wordpress.org/Plugin_API/Action_Reference/after_switch_theme
答案 1 :(得分:0)
我觉得你应该尝试这样的事情
if ( is_admin() && isset($_GET['activated'] ) && $pagenow == "themes.php" ) {
$role = get_role( 'author' );
$role->add_cap( 'edit_others_posts' );
}