Ограничение роли администратора

229
04 марта 2017, 05:48

Допустим в админке wordpress зарегистрированы 2 администратора, второй администратор нужен для теста сайта и отладки, потому-что будут участвовать несколько человек в тестах. Подскажите, как можно в wordpress ограничить некоторые возможности 2го администратора, чтобы допустим запретить ему установку плагинов, или удаление плагинов? И на какой это хук цепляется, чтобы ограничить права?

Попробовал сделать самостоятельно, но это ограничение не срабатывает:

function wpcodex_set_capabilities() {
    // Перечень прав на удаление
    $caps = array(
        'install_plugins'
    );
    $user_id = 2; // ID администратора, которго надо ограничить в правах
    $user = new WP_User( $user_id );
    foreach ( $caps as $cap ) {
        // Удалить права
        $user->remove_cap( $cap );
    }
}
add_action( 'init', 'wpcodex_set_capabilities' );
Answer 1

Для запрета установки плагинов и редактирования файлов плагинов и темы нужно добавить следующие строки в config.php:

define('DISALLOW_FILE_EDIT',true);
define('DISALLOW_FILE_MODS',true);

Если у второго админа нет доступа к ftp, он не сможет выполнять перечисленные действия. Да и никто не сможет.

UPDATE:

Есть возможности отнять некоторые capabilities (права) у определенного администратора:

function wpcodex_set_capabilities() {
    // Перечень прав на удаление
    $caps = array(
        'activate_plugins',
        'export',
        'remove_users',
        'switch_themes',
        'delete_site'
    );
    $user_id = xxx; // ID администратора, которго надо ограничить в правах
    $user = new WP_User( $user_id );
    foreach ( $caps as $cap ) {     
        // Удалить права
        $user->remove_cap( $cap );
    }
}
add_action( 'init', 'wpcodex_set_capabilities' );

Полный перечень ролей и прав можно посмотреть в кодексе.

READ ALSO
magento 2 : замена копирайта в админке

magento 2 : замена копирайта в админке

Хочу поменять копирайт в админке magento2x, но переопределение не происходит

260
ошибка пути в get_template_directory() в wordpress

ошибка пути в get_template_directory() в wordpress

вызываю функцию get_template_directory() и получаю путь D:\OpenServer\domains\wplocal/wp-content/themes/ как видно имеем "/" и "\", не могу найти как их настроить, для пути до корневой...

283
PHP Upload Files

PHP Upload Files

Всем привет

230
Как правильно настроить PHPDoc?

Как правильно настроить PHPDoc?

Имеется проект на Yii1PSR-4 не используется

316