【wordpress】外注向けにダッシュボードをシンプルにする

外注さん向けにワードプレスの管理画面をシンプルにしたかったので、調べてみました。
テーマのfunction.phpをいじる必要があります。
function.phpにエラーがあると、画面が真っ白になってワードプレスの管理画面からは何もできなくなりますので、ご注意を!

いじる前に、FTPでサーバーにつなげておいて、ローカルにバックアップしたfunction.phpをすぐにアップロードできるようにしておくと良いです。

なかなか情報が見つからなかったのが、Jetpackの非表示です。
管理者権限以外のユーザーの場合に、管理画面の左側メニューからJetpackの表示を非表示にするのには、Jetpack Only for Adminsというプラグインで可能です。

これだけだと、ログインした時に表示されるダッシュボードの画面からJetpackが消えないので、下記を入れると消せました。
unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘jetpack_summary_widget’]);

他の内容は、他サイトからの引用です。

●コードを引用させて頂いたサイト様
http://weblog.hy-z.com/skill/1095
http://htdsn.com/blog/archives/wordpress-admin-customize.html
http://yakugakusuikun.com/10814.html
http://tontotakumi.com/web-seisaku/multi-login/
http://www.wakatta-blog.com/wordpress-makes-menber-page.html
http://techmemo.biz/wordpress/hidden-options-help-link/
https://blog.gti.jp/post-2534
https://wordpress.org/support/topic/how-to-remove-jetpack-dashboard-widget

●コード

下記をfunction.phpの一番最後に記載すると、ほぼまっさらになりました。
下記のコードで、//管理バーのヘルプメニューと表示オプションを非表示にする
ところは、あくまで「表示オプション」の表示を消しているだけなので、コードを入れる前に、ダッシュボードの表示オプションで、全てチェックをはずしておく必要がああるかもしれません。

//寄稿者にも画像のアップロード
if ( current_user_can('contributor') && !current_user_can('upload_files') )
add_action('admin_init', 'allow_contributor_uploads');

function allow_contributor_uploads() {
$contributor = get_role('contributor');
$contributor->add_cap('upload_files');
}

/*
* 他のメンバーの画像を見れないようにする設定
* メディアの抽出条件にログインユーザーの絞り込み条件を追加する
*/
function display_only_self_uploaded_medias( $wp_query ) {
if ( is_admin() && ( $wp_query->is_main_query() || ( defined( 'DOING_QUERY_ATTACHMENT' ) && DOING_QUERY_ATTACHMENT ) ) && $wp_query->get( 'post_type' ) == 'attachment' ) {
$user = wp_get_current_user();
$wp_query->set( 'author', $user->ID );
}
}

function define_doing_query_attachment_const() {
if ( ! defined( 'DOING_QUERY_ATTACHMENT' ) ) {
define( 'DOING_QUERY_ATTACHMENT', true );
}
}

get_currentuserinfo();
if($current_user->user_level < 10){ add_action( 'pre_get_posts', 'display_only_self_uploaded_medias' ); add_action( 'wp_ajax_query-attachments', 'define_doing_query_attachment_const', 0 ); } //他の人の投稿を見れないようにする if (!current_user_can('level_10')) { function exclude_other_posts( $wp_query ) { if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) ) { $post_type = get_post_type_object( $_REQUEST['post_type'] ); $cap_type = $post_type->cap->edit_other_posts;
} else {
$cap_type = 'edit_others_posts';
}

if ( is_admin() && $wp_query->is_main_query() && ! $wp_query->get( 'author' ) && ! current_user_can( $cap_type ) ) {
$user = wp_get_current_user();
$wp_query->set( 'author', $user->ID );
}
}
add_action( 'pre_get_posts', 'exclude_other_posts' );
}

// 管理バーのヘルプメニューと表示オプションを非表示にする
function my_admin_head(){
if (!current_user_can('level_10')) {
echo '

';
}
}
add_action('admin_head', 'my_admin_head');

// メニューを非表示にする
function remove_menus () {
if (!current_user_can('level_10')) { //level10以下のユーザーの場合メニューをunsetする
remove_menu_page('wpcf7'); //Contact Form 7
global $menu;
unset($menu[2]); // ダッシュボード
//unset($menu[4]); // メニューの線1
//unset($menu[5]); // 投稿
//unset($menu[10]); // メディア
unset($menu[15]); // リンク
//unset($menu[20]); // ページ
unset($menu[25]); // コメント
//unset($menu[59]); // メニューの線2
unset($menu[60]); // テーマ
unset($menu[65]); // プラグイン
unset($menu[70]); // プロフィール
unset($menu[75]); // ツール
unset($menu[80]); // 設定
unset($menu[90]); // メニューの線3
}
}
add_action('admin_menu', 'remove_menus');

//入力画面のカテゴリとタグの設定を非表示に
if (!current_user_can('level_10')) {
function remove_extra_meta_boxes() {
remove_meta_box( 'categorydiv','post','side'); /* 投稿のカテゴリーフィールド */
//remove_meta_box( 'postcustom' , 'post' , 'normal' ); /* 投稿のカスタムフィールド */
remove_meta_box( 'postcustom' , 'page' , 'normal' ); /* 固定ページのカスタムフィールド */
//remove_meta_box( 'postexcerpt' , 'post' , 'normal' ); /* 投稿の抜粋 */
//remove_meta_box( 'postexcerpt' , 'page' , 'normal' ); /* 固定ページの抜粋 */
//remove_meta_box( 'commentsdiv' , 'post' , 'normal' ); /* 投稿のコメント */
remove_meta_box( 'commentsdiv' , 'page' , 'normal' ); /* 固定ページのコメント */
remove_meta_box( 'tagsdiv-post_tag' , 'post' , 'side' ); /* 投稿のタグ */
//remove_meta_box( 'tagsdiv-post_tag' , 'page' , 'side' ); /* 固定ページのタグ */
//remove_meta_box( 'trackbacksdiv' , 'post' , 'normal' ); /* 投稿のトラックバック */
//remove_meta_box( 'trackbacksdiv' , 'page' , 'normal' ); /* 固定ページのトラックバック */
//remove_meta_box( 'commentstatusdiv' , 'post' , 'normal' ); /* 投稿のディスカッション */
remove_meta_box( 'commentstatusdiv' , 'page' , 'normal' ); /* ページのディスカッション */
//remove_meta_box( 'slugdiv','post','normal'); /* 投稿のスラッグ */
remove_meta_box( 'slugdiv','page','normal'); /* 固定ページのスラッグ */
//remove_meta_box( 'authordiv','post','normal' ); /* 投稿の作成者 */
//remove_meta_box( 'authordiv','page','normal' ); /* 固定ページの作成者 */
//remove_meta_box( 'revisionsdiv','post','normal' ); /* 投稿のリビジョン */
//remove_meta_box( 'revisionsdiv','page','normal' ); /* 固定ページのリビジョン */
//remove_meta_box( 'pageparentdiv','page','side'); /* 固定ページのページ属性 */

}
add_action( 'admin_menu' , 'remove_extra_meta_boxes' );
}

// バージョン更新を非表示にする
add_filter('pre_site_transient_update_core', '__return_zero');
// APIによるバージョンチェックの通信をさせない
remove_action('wp_version_check', 'wp_version_check');
remove_action('admin_init', '_maybe_update_core');

// 管理バーにログアウトを追加
function add_new_item_in_admin_bar() {
global $wp_admin_bar;
$wp_admin_bar->add_menu(array(
'id' => 'new_item_in_admin_bar',
'title' => __('ログアウト'),
'href' => wp_logout_url()
));
}
add_action('wp_before_admin_bar_render', 'add_new_item_in_admin_bar');

//入力画面 現在の状況 のWordPress表示を消す
function my_admin_print_styles(){
if (!current_user_can('level_10')) {
echo '

';
}
}
add_action('admin_print_styles', 'my_admin_print_styles', 21);

//投稿リストから「すべて」などを消す
function custom_columns($columns) {
if (!current_user_can('level_10')) {
echo '

';
}
return $columns;
}
add_filter( 'manage_posts_columns', 'custom_columns' );

// 管理バーの項目を非表示
function remove_admin_bar_menu( $wp_admin_bar ) {
$wp_admin_bar->remove_menu( 'wp-logo' ); // WordPressシンボルマーク
$wp_admin_bar->remove_menu( 'comments' ); // コメント
//$wp_admin_bar->remove_menu('my-account'); // マイアカウント

}
add_action( 'admin_bar_menu', 'remove_admin_bar_menu', 70 );

// ダッシュボードウィジェット非表示
function example_remove_dashboard_widgets() {
if (!current_user_can('level_10')) { //level10以下のユーザーの場合ウィジェットをunsetする
global $wp_meta_boxes;
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); // 現在の状況
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); // 最近のコメント
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); // 被リンク
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); // プラグイン
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); // クイック投稿
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']); // 最近の下書き
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); // WordPressブログ
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); // WordPressフォーラム
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']); // アクティビティ
unset($wp_meta_boxes['dashboard']['normal']['core']['jetpack_summary_widget']); // jetpack
}
}
add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets');

//ダッシュボードに製作者からのお知らせを載せる
if (!current_user_can('level_10')) {
global $current_user;
get_currentuserinfo();
if ($current_user->ID != "1" ) {
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
wp_add_dashboard_widget('custom_help_widget', '管理人からのお知らせ', 'dashboard_text');
}
function dashboard_text() {
echo '

(表示するテキストをここに書く)

';
}
}
}

?>

コメント

タイトルとURLをコピーしました