問題描述
我對 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。