如何仅在WordPress中运行主题激活功能?

时间:2014-08-19 10:55:04

标签: php wordpress

我想为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,导致每次访问管理区域时都会运行该功能。如何仅在主题激活上运行该功能?

2 个答案:

答案 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' );
}