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


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が指摘したように、上記のフィルターは、変更可能なデフォルトを設定する代わりに、特定の配色を強制します。これに対する解決策は、アクションを1回だけ(たとえば、ユーザーのセットアップ/登録時に)実行して、その後ユーザーが自分で色を決定して変更できるようにすることです。

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 2013

@ラーストグッドポイント!回答を更新し、セットアップ時の色のみを変更するアクションを追加しました。その後はユーザー次第です:)
Sven

実際、これはすでに登録されているユーザーにとってはあまり役に立ちません。次のログイン時に実際に選択を強制する方法があるとは思いません(それは私が推測する多くの作業になるでしょう)。
Sol

@Sol単に設定が存在するかどうか、およびそれが3.8から事前定義されたカラースキームの1つであるかどうかを確認します。今の場合は、exit( wp_redirect( admin_url( 'profile.php' ) ) );(わからないprofile.php)ユーザーをプロフィールにリダイレクトし、admin_notice変更する必要があるものを追加します。このように行われると、この設定が完了するまでリダイレクトが発生するため、強制されます:)
kaiser

こんにちはカイザー、完璧に聞こえますか?サンプルコードを提供できますか?
Sol
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.