WP 3.8 สี Admin เริ่มต้นสำหรับผู้ใช้ทั้งหมด


10

ฉันประหลาดใจกับชุดรูปแบบสีใหม่สำหรับ 3.8 และแม้ว่าชุดรูปแบบ 3.7 คลาสสิกได้หายไปฉันต้องการตั้งค่าชุดรูปแบบสี "แสง" ใหม่เป็นค่าเริ่มต้นสำหรับผู้ใช้ทั้งหมด แต่ในเวลาเดียวกันยังคงอนุญาตให้เปลี่ยน ชุดรูปแบบหากพวกเขาต้องการในโปรไฟล์ผู้ใช้ของพวกเขา

มีใครจัดการที่จะเกิดขึ้นกับฟังก์ชั่นเพื่อตั้งค่าเริ่มต้นสำหรับผู้ใช้ทั้งหมดหรือไม่? ฉันค้นหา แต่ไม่พบอะไรเลยเนื่องจากเป็นเรื่องใหม่ดังนั้น 3.8 codex ที่ยังไม่ได้เขียนอย่างสมบูรณ์

คำตอบ:


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

อัปเดต 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

@ จุดที่ดีมาก! ฉันอัปเดตคำตอบของฉันและเพิ่มการกระทำเพื่อเปลี่ยนสีเมื่อตั้งค่าเท่านั้น หลังจากนั้นก็ขึ้นอยู่กับผู้ใช้ :)
Sven

จริงๆแล้ว - สิ่งนี้ไม่เป็นประโยชน์สำหรับผู้ใช้ที่ลงทะเบียนแล้ว ฉันไม่คิดว่าจะมีวิธีใดที่จะบังคับให้พวกเขาเลือกในการเข้าสู่ระบบครั้งต่อไป (นั่นเป็นงานที่ฉันคาดเดาได้มาก)
โซล

@Sol เพียงตรวจสอบว่ามีการตั้งค่าอยู่แล้วหรือไม่และเป็นหนึ่งในชุดรูปแบบสีที่กำหนดไว้ล่วงหน้าจาก 3.8 ถ้าตอนนี้เพียงexit( wp_redirect( admin_url( 'profile.php' ) ) );(ไม่แน่ใจprofile.php) เปลี่ยนเส้นทางไปยังโปรไฟล์และเพิ่มสิ่งadmin_noticeที่ควรเปลี่ยน ทำวิธีนี้พวกเขากำลังถูกบังคับเป็นเปลี่ยนเส้นทางที่จะเกิดขึ้นจนกว่าจะถึงการตั้งค่านี้จะทำ :)
Kaiser

สวัสดี Kaiser ฟังดูสมบูรณ์แบบคุณสามารถให้รหัสตัวอย่างได้หรือไม่
Sol
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.