WP 3.8 Màu quản trị mặc định cho tất cả người dùng


10

Tôi ngạc nhiên với bảng màu mới cho 3.8 và mặc dù chủ đề 3.7 cổ điển đã biến mất, tôi muốn đặt bảng màu "Ánh sáng" mới làm mặc định cho tất cả người dùng, nhưng đồng thời, vẫn cho phép họ thay đổi chủ đề nếu họ muốn, trong hồ sơ người dùng của họ.

Có ai quản lý để đưa ra một chức năng để đặt mặc định cho tất cả người dùng? Tôi đã tìm kiếm nhưng không tìm thấy gì vì nó quá mới, 3,8 codex chưa được viết đầy đủ.

Câu trả lời:


14

Bạn có thể đặt (về mặt lực lượng) một màu mặc định functions.phpnhư thế này:

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

Cập nhật: Các bảng màu sau đây có sẵn theo mặc định tại WP 3.8

  • tươi
  • ánh sáng
  • màu xanh da trời
  • cà phê
  • ngoại bào
  • nửa đêm
  • đại dương
  • bình Minh

Phần thưởng (được tìm thấy trên wpmudev ): Vô hiệu hóa Tùy chọn phối màu quản trị viên để đảm bảo rằng người dùng không thể chuyển về màu khác:

remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

Cập nhật 2: Như Rarst đã chỉ ra bộ lọc ở trên sẽ buộc một bảng màu cụ thể thay vì đặt mặc định có thể thay đổi. Giải pháp cho vấn đề này là chỉ chạy một hành động (ví dụ: về thiết lập / đăng ký người dùng) để sau đó người dùng có thể tự quyết định và thay đổi màu sắc:

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

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

}

Cập nhật 3: Được rồi, vì vậy hãy thử thêm một lần nữa :)

Ý tưởng là thêm dữ liệu meta người dùng (xem custom_admin_color_scheme) ngay khi người dùng cập nhật hồ sơ; miễn là trường không được đặt thành truechúng tôi sẽ thay đổi bảng màu quản trị mặc định thành bảng màu theo lựa chọn của chúng tôi:

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

}

Cập nhật 4: Cuối cùng cũng có một plugin rất tốt đẹp trên wordpress.org để chương trình quản trị mặc định màu xử lý một cách dễ dàng: Mặc định quản Color Scheme


2
Điều này có bắt buộc chương trình cụ thể thay vì đặt mặc định có thể thay đổi không?
Rarst

@Rarst Điểm tốt! Tôi đã cập nhật câu trả lời của mình và thêm một hành động để chỉ thay đổi màu sắc khi thiết lập; sau đó tùy thuộc vào người dùng :)
Sven

Trên thực tế - điều này không hữu ích cho người dùng đã đăng ký. Tôi không cho rằng có một cách để thực sự buộc họ phải đưa ra lựa chọn trong lần đăng nhập tiếp theo (đó sẽ là rất nhiều công việc tôi đoán).
Sol

@Sol Đơn giản chỉ cần kiểm tra xem đã có cài đặt chưa và nếu đó là một trong các bảng màu được xác định trước từ 3.8. Nếu bây giờ, chỉ cần exit( wp_redirect( admin_url( 'profile.php' ) ) );(không chắc chắn về profile.php) chuyển hướng họ đến hồ sơ của họ và thêm một admin_noticecái mà họ nên thay đổi. Thực hiện theo cách này, họ buộc phải chuyển hướng sẽ xảy ra cho đến khi cài đặt này được thực hiện :)
kaiser 17/12/13

Xin chào Kaiser, âm thanh hoàn hảo bạn có thể cung cấp mã ví dụ không?
Sol
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.