CLI role switching
<?php
global $wp_roles;
$current_roles = array_keys( $wp_roles->roles );
WP_CLI::line( 'Current roles: ' . implode( ', ', $current_roles ) );
$keep_roles = array(
'administrator',
'editor',
'author',
'ad_editor',
'attributed',
);
WP_CLI::line( 'Roles to keep: ' . implode( ',', $keep_roles ) );
$deleted_these_roles = array_diff( $current_roles, $keep_roles );
WP_CLI::line( 'Roles to delete: ' . implode( ',', $deleted_these_roles ) );
$admin = [get_role](http://codex.wordpress.org/Function_Reference/get_role)( 'administrator' );
$admin->[add_cap](http://codex.wordpress.org/Function_Reference/add_cap)( 'edit_ads' );
$admin->[add_cap](http://codex.wordpress.org/Function_Reference/add_cap)( 'curate' );
$admin->[add_cap](http://codex.wordpress.org/Function_Reference/add_cap)( 'unfiltered_html' );
$editor_caps_mod = $wp_roles->roles[ 'editor' ][ 'capabilities' ];
$editor_caps_mod[ 'curate' ] = true;
$editor_caps_mod[ 'manage_options' ] = true;
[remove_role](http://codex.wordpress.org/Function_Reference/remove_role)( 'editor' );
[add_role](http://codex.wordpress.org/Function_Reference/add_role)( 'editor', 'Deputy Editor', $editor_caps_mod );