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

Php 如何仅在WordPress中运行主题激活功能?,php,wordpress,Php,Wordpress,我想为WordPress中的一个默认角色添加一个功能。建议人们在主题激活时执行此类操作,因为设置会保存到数据库中: 注意:此设置保存到数据库中,因此最好在主题/插件激活时运行此设置 我打算使用的功能是: function add_theme_caps() { $role = get_role( 'author' ); $role->add_cap( 'edit_others_posts' ); } add_action( 'admin_init', 'add_theme_

我想为WordPress中的一个默认角色添加一个功能。建议人们在主题激活时执行此类操作,因为设置会保存到数据库中:

注意:此设置保存到数据库中,因此最好在主题/插件激活时运行此设置

我打算使用的功能是:

function add_theme_caps() {
    $role = get_role( 'author' );
    $role->add_cap( 'edit_others_posts' ); 
}
add_action( 'admin_init', 'add_theme_caps');

如您所见,我目前正在连接到
admin\u init
,这使得每次访问管理区域时都会运行该函数。如何仅在主题激活时运行该功能?

您可以在切换主题后使用
。当然,这只会影响你的主题


我觉得你应该试试这样的东西

if ( is_admin() && isset($_GET['activated'] ) && $pagenow == "themes.php" ) {
    $role = get_role( 'author' );
    $role->add_cap( 'edit_others_posts' );
}