web-dev-qa-db-ja.com

WordPress管理パネル全体の外観を変更するにはどうすればいいですか?

WordPressのさまざまなロールタイプに応じて、WordPress管理パネルの外観を変更しようとしています。役割ごとに異なるテーマを作成または割り当てる方法.

  • エディタ>管理者パネルのテーマ1
  • 作者>管理者パネルテーマ2
  • 寄稿者>管理者パネルテーマ3
  • 購読者>管理者パネルテーマ4

あるいはウェブサイト管理者にとっても。

私が探しているのはWordPress管理パネルのHTML構造/レイアウト、ユーザーインターフェースを変更することです。

利用可能なフックやアクションがありますか、ガイドしてください。

よろしく、

5
FaisalShehzad

これは、管理テーマの作成に関するトピックに関する優れたコーデックスの記事です。 http://codex.wordpress.org/Creating_Admin_Themes

そして、あなたの質問に戻って、あなたは異なるユーザロールのために異なるスタイルシートをロードしたいでしょう、それであなたは現在のユーザが誰であるかをチェックしなければなりません。注意してください、チェックは current_user_can() 関数を使って行われ、管理者のチェックは is_admin() を使って行われていません管理者用ではなく、Webの管理側にロードされています。

コーデックスの最初のコード例を少し修正した

<?php
function my_admin_theme_style() {
    if ( current_user_can( 'manage_options' ) ) { //means it is an administrator
        $style = 'my-admin-theme-administrator.css';
    } else if ( current_user_can( 'edit_others_posts' ) ) { //editor
        $style = 'my-admin-theme-editor.css';
    } else if ( current_user_can( 'edit_published_posts' ) ) { //author
        $style = 'my-admin-theme-author.css';
    } else if ( current_user_can( 'edit_posts' ) ) { //contributor
        $style = 'my-admin-theme-contributor.css';
    } else { //anyone else - means subscriber
        $style = 'my-admin-theme-subscriber.css';
    }
    wp_enqueue_style('my-admin-theme', plugins_url($style, __FILE__));
}
add_action('admin_enqueue_scripts', 'my_admin_theme_style');

function my_admin_theme_login_style() {
    //we can't differentiate unlogged users theme so we are falling back to subscriber
    $style = 'my-admin-theme-subscriber.css';
    wp_enqueue_style('my-admin-theme', plugins_url($style, __FILE__));
}
add_action('login_enqueue_scripts', 'my_admin_theme_login_style');

また、ユーザロールをどのように区別できるかについては、 ロールと機能のページ を参照してください。

乾杯!

4
david.binda