WP 3.8 Колір адміністратора за замовчуванням для всіх користувачів


10

Я здивований новою кольоровою схемою для 3.8, і хоча класична тема 3.7 пішла, я хотів би встановити нову колірну схему "Світло" як стандартну для всіх користувачів, але в той же час все ж дозволяти їм змінити тему, якщо вони бажають, у своєму профілі користувача.

Чи вдалося кому-небудь придумати функцію встановлення за замовчуванням для всіх користувачів? Я шукав, але нічого не можу знайти, оскільки це так новий, кодекс 3.8 не повністю написаний.

Відповіді:


14

Ви можете встановити (з точки зору сили) колір за замовчуванням у functions.phpтакому вигляді:

add_filter( 'get_user_option_admin_color', 'update_user_option_admin_color', 5 );

function update_user_option_admin_color( $color_scheme ) {
    $color_scheme = 'light';

    return $color_scheme;
}

Оновлення: Наступні кольорові схеми доступні за замовчуванням на WP 3.8

  • свіжий
  • світла
  • синій
  • кава
  • ектоплазма
  • опівночі
  • океан
  • схід сонця

Бонус (знайдено в wpmudev ): вимкніть параметри кольорової схеми адміністратора, щоб переконатися, що користувачі не можуть повернутися до іншого кольору:

remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

Update 2: Як Rarst вказав фільтр вище, змусити певну колірну схему замість установки змінюваного по замовчуванням. Рішення цього полягає в тому, щоб запустити дію лише один раз (наприклад, про налаштування / реєстрацію користувача), щоб після цього користувач міг вирішити та змінити колір самостійно:

add_action( 'user_register', 'myplugin_registration_save', 10, 1 );
function myplugin_registration_save( $user_id ) {

       update_user_meta($user_id, 'admin_color', 'light');

}

Оновлення 3: Гаразд, тому ще одна спроба :)

Ідея полягає в тому, щоб додати додаткові метадані користувача (див. custom_admin_color_scheme), Як тільки користувач оновлює профіль; поки поле не встановлено, trueми змінимо кольорову схему адміністратора за замовчуванням на кольорову схему на наш вибір:

// add custom user meta data
add_action('personal_options_update', 'save_custom_admin_color_optios');
function save_custom_admin_color_optios( $user_id ) {

    update_user_meta($user_id, 'custom_admin_color_scheme', true);

}

// change default color scheme if not customized
$customized_color_scheme = get_user_option( 'custom_admin_color_scheme', get_current_user_id() );
if ( empty($customized_color_scheme) ) {

    update_user_meta(get_current_user_id(), 'admin_color', 'light');

}

Оновлення 4: Нарешті, на Wordpress.org також є дуже приємний плагін, який легко обробляє кольорові схеми адміністратора за замовчуванням: Колірна схема адміністратора за замовчуванням


2
Чи не буде ця силова схема замість встановлення змінних за замовчуванням?
Рарст

@Rarst Добрий момент! Я оновив свою відповідь і додав дію, щоб змінити лише колір під час налаштування; після цього це залежить від користувача :)
Свен

Насправді - це не дуже корисно для вже зареєстрованих користувачів. Я не думаю, що є спосіб насправді змусити їх зробити вибір при наступному вході (я думаю, це буде велика робота).
Сол

@Sol Просто перевірте, чи вже є налаштування і чи це одна із заздалегідь визначених кольорових схем з 3.8. Якщо зараз, просто exit( wp_redirect( admin_url( 'profile.php' ) ) );(не впевнений у цьому profile.php) перенаправляйте їх у свій профіль та додайте admin_noticeте, що вони повинні змінити. Зроблено таким чином, вони змушені, оскільки переспрямування відбуватиметься до тих пір, поки ця настройка не буде виконана :)
kaiser

Привіт, Кайзер, ідеально звучить, чи можете ви надати приклад коду?
Сол
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.