問題描述

我對 3.8 的新配色方案感到驚訝,雖然經典的 3.7 主題已經消失,但我想將新的”Light” 配色方案設置為所有用户的默認配置,但同時仍允許他們更改主題,如果他們希望在他們的用户個人資料中。

有沒有人設法設置一個功能來設置所有用户的默認值?我搜索過,但找不到什麼,因為這是新的,3.8 codex 沒有完全寫。

最佳解決方案

您可以在 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' );

更新 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 處理默認管理顏色方案:Default Admin Color Scheme

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。