web-dev-qa-db-ja.com

WP 3.8すべてのユーザーのデフォルト管理色

3.8の新しい配色には驚きました。3.7のテーマは廃止されましたが、新しい "Light"配色をすべてのユーザーのデフォルトとして設定したいと思いますが、同時にそれらを変更することもできます。彼らが望むなら彼らのユーザープロファイルのテーマ。

すべてのユーザーにデフォルトを設定する機能を思いついた人はいますか?私は検索しましたが、これは新しいので、3.8 codexが完全に書かれていないので何も見つけることができません。

10
Sol

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 にあります):ユーザーが他の色に切り替えられないようにするためにAdmin Color Scheme Optionsを無効にします。

remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

更新2:Rarstが指摘したように、上記のフィルタは変更可能なデフォルトを設定する代わりに force 特定の配色を使用します。これに対する解決策は、一度だけアクションを実行することで(例えば、ユーザーのセットアップ/登録)、ユーザーは自分で色を決めて変更することができます。

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に設定されていない限り、デフォルトのadmin配色を好みの配色に変更します。

// 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上の非常に素晴らしいプラグインもあります。 デフォルトの管理カラースキーム

14
Sven