2. 2 管理画面全体に関するカスタマイズ

管理バー, 表示オプション, ヘルプ, アドミニメニュー, 更新情報等

管理バーの項目の全削除・修正・追加

 管理画面の管理バーのメニュー項目の削除、変更、追加を行い、高機能を必要としない一般ユーザーが使いやすいようにします。

コード

// --------------------------------
// 管理バーの項目の全削除・修正・追加
// --------------------------------
function hk_functions_add_admin_bar_menus() {
    remove_all_filters('admin_bar_menu');
    add_action( 'admin_bar_menu', 'hk_functions_admin_bar_menu' );
    return;
}
add_action( 'add_admin_bar_menus', 'hk_functions_add_admin_bar_menus' );

// 管理バーの項目の修正・追加
function hk_functions_admin_bar_menu( $wp_admin_bar ) {
    // サイト名(修正復活)
    $blogname = get_bloginfo('name');
    if ( ! $blogname )        $blogname = 'サイト名無し';
    $title = wp_html_excerpt( $blogname, 40, '…' );
    $wp_admin_bar->add_menu( array(
        'id'    => 'site-name',
        'title' => $title,
        'href'  => home_url( '/' ),
        'meta'  => array( 'target' => '_blank' ),
    ) );
    // 投稿を表示(修正復活)
    $current_screen = get_current_screen();
    if (( $current_screen->base == 'post' ) && ( $current_screen->action != 'add' )) {
        $post = get_post();
        $post_type = $post->post_type;
        if (( $post_type == 'post' ) || ( $post_type == 'page' )) {
            if ( $post_type == 'post' )
                $title = '投稿を表示';
            else
                $title = '固定ページを表示';
            $wp_admin_bar->add_menu( array(
                'id'    => 'view',
                'title' => $title,
                'href'  => get_permalink( $post->ID ),
                'meta'  => array( 'target' => '_blank' ),
            ) );
        }
    }
    // ログアウトの追加
    $wp_admin_bar->add_menu(array(
        'id'        => 'hk_functions_logout',
        'title'     => 'ログアウト',
        'href'      => wp_logout_url()
    ));
    // 挨拶の追加
    date_default_timezone_set('Asia/Tokyo');
    list($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime();
    if ( $hour < 6 )                                $greeting = 'こんばんは ';
    else if ( ( $hour >= 6 ) && ( $hour < 10 ) )    $greeting = 'おはよう ';
    else if ( ( $hour >= 10 ) && ( $hour < 18 ) )   $greeting = 'こんにちは ';
    else                                            $greeting = 'こんばんは ';
    $current_user = wp_get_current_user();
    $howdy = $greeting.$current_user->last_name.' '.$current_user->first_name.' さん ';
    $wp_admin_bar->add_menu( array(
        'id'        => 'hk_functions_my-account',
        'parent'    => 'top-secondary',
        'title'     => $howdy,
        'href'      => '',
    ) );
    // Add secondary menus.(復活)
    wp_admin_bar_add_secondary_groups( $wp_admin_bar );
    return;
}

表示オプション 管理者以外:非表示

 表示オプションを非表示にして、高機能を必要としない一般ユーザーが使いやすいようにします。
 表示オプションボタンも非表示になります。

コード

// --------------------------------
// 表示オプション 管理者以外:非表示
// --------------------------------
function hk_functions_screen_options_show_screen( $show_screen ) {
    if ( current_user_can('administrator') )    return $show_screen;
    return false;
}
add_filter( 'screen_options_show_screen', 'hk_functions_screen_options_show_screen' );

ヘルプ 非表示

 カスタマイズが多くなるとヘルプの内容と異なってきます。ユーザーに誤解を与えてはいけないので非表示にします。
 ヘルプボタンも非表示になります。

コード

// --------------------------------
// ヘルプ 非表示
// --------------------------------
function hk_functions_in_admin_header() {
    get_current_screen()->remove_help_tabs();
    get_current_screen()->set_help_sidebar('');
    return;
}
add_action( 'in_admin_header', 'hk_functions_in_admin_header' );

アドミニメニュー追加

 アドミニメニューに次のメニューを追加します。
 ・固定ページの子メニューにゴミ箱
 ・投稿の子メニューにゴミ箱
 ・オプションメニュー
 オプションメニューは、WordPress の設定メニューやプラグインの設定メニューで設定した内容を表示します。デバッグに便利です。設定の編集もできるようですが、入力を間違える危険性があるので、内容確認にだけ利用しています。
 オプションメニューはデバッグ目的ですので、登録順位は100番以降、権限は管理者に設定しています。
 オプションメニューの場合、parent_file を設定しないとアドミニメニューの表示が狂います。

コード

// --------------------------------
// アドミニメニュー追加
// --------------------------------
function hk_functions_add_admin_menu() {
    global $menu;
    // 固定ページ 子メニュー ゴミ箱 追加
    $parent_slug = 'edit.php?post_type=page';
    $page_title  = 'ゴミ箱';
    $menu_title  = 'ゴミ箱';
    $capability  = 'edit_pages';
    $menu_slug   = 'edit.php?post_status=trash&post_type=page';
    $function    = '';
    add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );
    // 投稿 子メニュー ゴミ箱 追加
    $parent_slug = 'edit.php';
    $page_title  = 'ゴミ箱';
    $menu_title  = 'ゴミ箱';
    $capability  = 'edit_posts';
    $menu_slug   = 'edit.php?post_status=trash&post_type=post';
    $function    = '';
    add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function );
    // オプションメニュー登録
    $order = 100;
    while ( isset( $menu[ $order ] ) )
        $order++;
    $page_title = 'WP OPTIONS';
    $menu_title = 'WP OPTIONS';
    $capability = 'activate_plugins';
    $menu_slug  = 'options.php';
    $function   = '';
    $icon_url   = 'dashicons-wordpress-alt';
    add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $order );
    return;
}
add_action( 'admin_menu', 'hk_functions_add_admin_menu' );

// --------------------------------
// parent_file の設定 オプションメニュー
// --------------------------------
function hk_functions_parent_file( $parent_file ) {
    global $pagenow;
    if ( $pagenow == 'options.php' )        return 'options.php';
    return    $parent_file;
}
add_filter( 'parent_file', 'hk_functions_parent_file' );

メニューを閉じる 非表示

 多機能を必要としない一般ユーザーが使いやすいようにします。

コード

// --------------------------------
// メニューを閉じる 非表示
// (スタイル記述)
// --------------------------------
function hk_functions_admin_head() {
    echo '<style type="text/css">'."\n";
    echo '    #collapse-menu { display: none !important; }'."\n";
    echo '</style>'."\n";
    return;
}
add_action( 'admin_head', 'hk_functions_admin_head' );

更新情報 管理者以外非表示

 WordPressの更新情報は管理者以外には不要な情報です。

コード

// --------------------------------
// 更新情報 管理者以外非表示
// --------------------------------
function hk_functions_pre_site_transient_update_core( $pre_site_transient ) {
    if ( current_user_can('administrator') )    return $pre_site_transient;
    return null;
}
add_filter( 'pre_site_transient_update_core', 'hk_functions_pre_site_transient_update_core' );

ご利用ありがとう 非表示

 次のメッセージを非表示にします。
   WordPress のご利用ありがとうございます。

コード

// --------------------------------
// ご利用ありがとう 非表示
// --------------------------------
function hk_functions_admin_footer_text() {
    return '';
}
add_filter( 'admin_footer_text', 'hk_functions_admin_footer_text' );

バージョン情報 非表示

 ページの末尾に表示されるバージョン情報を非表示にします。一般ユーザーに不要です。管理者は、更新情報で確認できます。

コード

// --------------------------------
// バージョン情報 非表示
// --------------------------------
function hk_functions_update_footer( $content ) {
    return '';
}
add_filter( 'update_footer', 'hk_functions_update_footer', 11 );

 このプログラムをお使いになる場合は、お使いになる方の自己責任でお願いします。

更新日:2016/03/19
掲載日:2016/03/19