WP 3.8 Default Admin Color Untuk Semua Pengguna

10

Saya terkejut dengan skema warna baru untuk 3.8 dan meskipun tema klasik 3.7 telah hilang, saya ingin mengatur skema warna "Cahaya" baru sebagai default untuk semua pengguna, tetapi pada saat yang sama, masih memungkinkan mereka untuk mengubah tema jika mereka mau, di profil pengguna mereka.

Adakah yang berhasil membuat fungsi untuk menetapkan default untuk semua pengguna? Saya sudah mencari tetapi tidak menemukan apa-apa karena ini sangat baru, 3,8 codex tidak sepenuhnya ditulis.

Sol
sumber

Jawaban:

14

Anda dapat mengatur (dalam hal gaya) warna default dalam functions.phpseperti ini:

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;
}

Pembaruan: Skema warna berikut ini tersedia per default di WP 3.8

  • segar
  • cahaya
  • biru
  • kopi
  • ektoplasma
  • tengah malam
  • lautan
  • matahari terbit

Bonus (ditemukan di wpmudev ): Nonaktifkan Opsi Skema Warna Admin untuk memastikan bahwa pengguna tidak dapat beralih kembali ke warna lain:

remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

Pembaruan 2: Seperti yang ditunjukkan Rarst, filter di atas akan memaksakan skema warna tertentu alih-alih menetapkan default yang dapat diubah. Solusi untuk ini adalah menjalankan tindakan hanya sekali (misalnya pada pengaturan / registrasi pengguna) sehingga setelah itu pengguna dapat memutuskan dan mengubah warna sendiri:

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

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

}

Pembaruan 3: Oke, jadi sekali lagi coba :)

Idenya adalah untuk menambahkan data meta pengguna tambahan (lihat custom_admin_color_scheme) segera setelah pengguna memperbarui profil; selama bidang tidak disetel ke truekami akan mengubah skema warna admin default ke skema warna pilihan kami:

// 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');

}

Pembaruan 4: Akhirnya ada juga plugin yang sangat bagus di wordpress.org untuk menangani skema warna admin standar dengan mudah: Skema Warna Admin Default

Sven
sumber
2
Bukankah ini akan memaksakan skema spesifik alih-alih menetapkan default yang dapat diubah?
Jarang,
@Rarst Poin bagus! Saya memperbarui jawaban saya dan menambahkan tindakan untuk hanya mengubah warna pada pengaturan; setelah itu terserah kepada pengguna :)
Sven
Sebenarnya - ini tidak terlalu membantu bagi pengguna yang sudah terdaftar. Saya tidak mengira ada cara untuk benar-benar memaksa mereka untuk membuat pilihan pada login berikutnya (itu akan menjadi banyak pekerjaan yang saya kira).
Sol
@ Sol Cukup periksa apakah sudah ada pengaturan dan apakah itu adalah salah satu skema warna yang telah ditetapkan dari 3,8. Jika sekarang, cukup exit( wp_redirect( admin_url( 'profile.php' ) ) );(tidak yakin tentang profile.php) mengarahkan mereka ke profil mereka dan menambahkan admin_noticebahwa mereka harus berubah. Dilakukan dengan cara ini, mereka dipaksa karena pengalihan akan terjadi sampai pengaturan ini selesai :)
kaiser
Hai Kaiser, kedengarannya sempurna Anda dapat memberikan contoh kode?
Sol