一部の読者から、WordPressの管理バーを無効化する方法を尋ねられました。これは小さな調整ですが、ユーザーによっては、よりすっきりとしたユーザーインターフェースを維持したい、管理者以外のユーザーのユーザー体験を向上させたいなど、さまざまな理由でこれを行うことを好みます。
初期設定では、個々のユーザーのWordPress管理バーを簡単に無効化することができます。しかし、サイトに多数の登録ユーザーがいる場合、これは時間のかかる作業です。
この投稿では、WordPressの管理バーを管理者以外のすべてのユーザーに対して簡単に無効化する方法を紹介します。
WordPressの管理バーとは?
初期設定では、WordPressはログイン中のすべてのユーザーの画面上部に管理バーを表示します。アカウントにログインすると、WordPressの管理エリアやその他のすべてのページでこのツールバーが表示されます。
WordPressの管理ツールバーには、WordPressのさまざまなバックエンドエリアへの便利なショートカットがあり、これらのショートカットは、ユーザーのWordPressにおける権限とグループによって変わります。
しかし、サイトのフロントエンドを見ていると、管理バーが邪魔になることがある。
また、サイトのデザインやユーザーエクスペリエンスにも影響を与える可能性があります。これは、第三者のためにWordPressサイトを構築または管理している場合に問題となる可能性があります。
幸いなことに、管理者以外のすべてのユーザーに対して管理バーを無効化する方法は複数あります。以下のクイックリンクから、使いたい方法にジャンプしてください:
動画チュートリアル
文章での説明がお好きな方は、そのまま読み進めてください。
方法1:WordPressで各ユーザーの権限を変更する
ユーザープロフィールを編集するだけで、特定のユーザーの管理バーを無効化することができます。これは、少数のユーザーに対して管理バーを削除する必要がある場合、迅速で簡単な方法です。しかし、多くのユーザーを抱える会員制サイトを運営している場合は、別の方法を選択することをお勧めします。
管理バーを手動で削除するには、WordPress管理ダッシュボードのユーザー ” すべてのユーザーページに移動するだけです。そして、管理バーが不要なWordPressユーザーにマウスオーバーし、表示されたら「編集」をクリックします。
そのユーザーのプロフィールが表示されます。
ここから、「サイト表示時にツールバーを表示する」オプションの隣のチェックボックスを外す。
その後、画面を一番下までスクロールし、「ユーザーを更新」をクリックして変更を保存します。これで、その特定のユーザーのみ管理バーが無効化されます。
より多くのユーザーのツールバーを非表示にするには、上記と同じ手順を踏むだけです。
方法2:コードを使用して非管理ユーザーの管理バーを無効化する(推奨)
管理バーを多くのユーザーに対して非表示にする必要がある場合、各ユーザーの設定を手動で変更するのは大変な時間と労力がかかります。
そのため、WordPressのテーマファイルであるfunctions.phpファイルにコードを追加して管理バーを無効化することをお勧めします。
テーマファイルを手動で編集するように指示するガイドもありますが、WordPressの一般的なエラーを引き起こし、サイトを完全に壊してしまう可能性もあります。
そのため、WPCodeの使用をお勧めします。これは最高のコードスニペットプラグインで、サイトを危険にさらすことなくWordPressにカスタムコードを簡単に追加することができます。
WPCodeを使って、管理画面の配色を変更したり、「Howdy Admin」テキストを削除したり、表示オプションボタンを無効化したりしました。
まず、無料のWPCodeプラグインをインストールし、有効化する必要があります。 詳しくは、WordPressプラグインのインストール方法のステップバイステップガイドをご覧ください。
プラグインを有効化したら、Code Snippets ” Add Snippetに進みます。
ここでは、あなたのサイトに追加できるすべての既製のスニペットが表示されます。
実際、WPCodeには、管理バーを無効化するのに必要なコード・スニペットが、ビルトインのスニペット・ライブラリに用意されています。コードスニペット“ライブラリにアクセスしてください。
ここで、「Disable The WP Admin Bar」を検索する。
適切なスニペットが表示されたら、その「スニペットを使う」ボタンをクリックするだけだ。
プラグインは自動的にサイトにコードを追加し、コードに説明的なタイトルを付け、正しい挿入方法を選択し、さらにスニペットを識別するためのタグを追加します。
コードはこんな感じだ:
/* Disable WordPress Admin Bar for all users */
add_filter( 'show_admin_bar', '__return_false' );
すべてのユーザーに対して管理バーを無効化することが目的であれば、スイッチを「無効化」から「有効化」に切り替え、「更新」をクリックするだけです。
しかし、我々の目的は非管理ユーザーに対してWordPressの管理バーを無効化することなので、コードを少し調整する必要がある。
既存のコードを以下のように置き換えることができる:
/* Disable WordPress Admin Bar for all users except administrators */
add_filter( 'show_admin_bar', 'restrict_admin_bar' );
function restrict_admin_bar( $show ) {
return current_user_can( 'administrator' ) ? true : false;
}
このコードは、現在管理ダッシュボードを見ていない非管理ユーザーを識別します。これらのユーザーに対しては、WordPress 管理バーを無効化します。
その後、ページを下にスクロールして「インサーター」セクションまで進む。ここでは、初期設定の’Auto Insert’メソッドのままにしておくと、どこでもコードが実行されるようになります。
最後に画面を一番上までスクロールし、「Inactive」スライダーをクリックして「Active」と表示させる。
その後、「スニペットを保存」または「更新」ボタンをクリックするだけで、コード・スニペットが有効になります。
以上で作業は終了です!WordPressサイトが正常に動作していることを確認するのを忘れないでください。
方法3:無料のプラグインを使って、非管理ユーザー用の管理バーを無効化する。
サイトにコードを追加したくない場合は、プラグインを使って管理バーを非表示にすることができます。Hide Admin Bar Based on User Rolesは異なるユーザー権限に基づいてツールバーを非表示にすることができるので、すべてのメンバーやWooCommerceの顧客、その他のユーザー権限で管理バーを無効化したい場合におすすめです。
まず、Hide Admin Bar Based on User Rolesプラグインをインストールして有効化する必要があります。詳しくは、WordPressプラグインのインストール方法のステップバイステップガイドをご覧ください。
有効化した後、Settings ” Hide Admin Bar Settingsページに移動する必要があります。ここで、管理バーを無効化したいユーザー権限グループの横にあるボックスにチェックを入れます。
あとは「変更を保存」をクリックするだけで、設定が保存されます。
WordPressの管理バーを管理者以外のすべてのユーザーに対して無効化する方法について、この投稿がお役に立てれば幸いです。また、WordPress で投稿の変更をメールで通知する方法や、WordPress の活動ログとトラッキングプラグインのエキスパートによるベストセレクションもご覧ください。
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Destiny Boy
This was very simple ans straight forward, it helped me
ronald osoo
This code has bug , its working but not bullet proof . The normal user can by -pass this and get access to the user admin like panel at the top by just adding wp-admin/ to the url like trying to login
Math
I agree, direct access to wp-admin/profile.php is making this useless.
Steve
A lot of websites not only from wordpress have the same option. You can acces to the admin-login page of any website just writing example.com/admin : Thats normal. I find it’s look really good without the adminbar.
Alex S
Hello,
I wish your syntax highlighter was better. Tried to copy the code and got the numbers starting at 2. I don’t need your numbers, just the good code. I would use this site a lot more if this was not the case.
Thanks.
WPBeginner Support
You can also click on the little button on top right corner of the code snippet. It will open the raw code in a popup, which is much easier to copy.
管理者
stefano
It works well, but the bar remains for visitors, who have not made the LOGIN
Jenn
This plugin was working great and I was using Theme My Login. When I deactivated that plugin it is not not functioning as before… I see the admin bar for all users. Any suggestions?
Jenn
Sorry I meant to say this ‘code’ was working great. I created a site-specific plugin as well and everything was working great. But after deactivating Theme My Login, not it seems to not have any effect and I see the admin bar on all users.
Suggestions?
Jenn
I just tried adding in the code for all users: show_admin_bar(false); and I can still see the admin bar.
Alexander Pardo
Thank you very much ! A very simple and clean solution.
Jason A. Churchill
I’m not well-read in editing the functions.php file. My first two attempts resulted in syntax error messages.
Where exactly should I place this code in the functions.php file?
WPBeginner Support
At the end. If your functions.php file ends with ?> then you need to paste the code just before it.
管理者
Terry Hale
Thanks so much for this! No plugins, nice, clean, simple.
WPBeginner Staff
WordPress admin bar is displayed only for logged in users.
Bhris
Great straight-to-the-point tutorial.
Is there a version of the code that will block all non-users. That is, visitors to the site won’t see the bar, while all logged-in users would?
Shashi
I was trying to do what what was mentioned in the article and it did not work. I used the following instead which did the trick from me:
if ( ! current_user_can( ‘manage_options’ ) ) {
show_admin_bar( false );
}
The above was mentioned in the wordpress codex: http://codex.wordpress.org/Function_Reference/show_admin_bar
vipin
Thanks a lot its really cool…………
Karen
Neither worked for me. I copied the numbers with the text as I did not know that I could
click on the button on top right corner of the code snippet and copy the raw code. I removed the numbers, but overlooked the seven. I had to change the file entry in via my file manager as I could no longer edit the functions.php. So after a scare and a bit of back and forth I removed the number and the admin bar is still there. I also tried your code Shashi, but it’s not working either.
I have tried every plugin under the sun and nothing will remove the bar.
kim04099
Thank You!!
Che Boielle
Fastest fix to an odd issue I’ve ever found and implemented. Great explanation simple to follow instructions. Thanks guys, will be book marking your site.
Manthan
Thanks, Its the easiest way found..!!!
Ryan McGovern
Thanks for the code snippet!
Anup
Why not simply do this for any specific user.
Jack
It would be hard to do this if you have many users.
Róger Marroni
Great job man!
thank you very much!
Mega
I tried and my site is black.
Ryan S
the first step works fine, it is something in your end, maybe while implementing the code
Etienne
Perfect piece of code… Thanks a lot!
Cheers
Nathan Jansen
Use this if you want this only for a certain role
function remove_admin_bar() {
$user = wp_get_current_user();
if (in_array(‘subscriber’, $user->roles)) {
show_admin_bar(false);
}
}
meef
Godbless You. Answers to my problem always come from you post.
Thanks
Prem
Finally I got the answers Thank you
Paw Pet Directory
I used this on my directory for my customers but the bar will not go away for them. I am using 3.8 with AppThemes Vantage Theme (Latest)
Cory
This is one of those things that, because it’s such a small customization, I’d hate to use a plugin for. So being able to throw this short piece of code into my child theme’s functions.php made me super happy. Thanks so much far sharing! Works like a charm.
Raman
Thanks for posting it was useful.
Naveen
I have added this code it is working fine, but if a user takes meta there is an option yo view the admin, if i click on this the admin page can see, how to avoid this, i dont want to give admin panel to the users, a user can edit the url and give /wp-admin also he can see the admin, i dont want both what will do for this?
Subodh
Admin bar is hidden but now how can a user log out?
I am using bbpress forum and a plugin for users to log in via their Facebook account to join forum. But find no option for logging out.
WPBeginner Support
A link to the logout or login can be provided into sidebar or menus. WordPress comes with a default widget called meta which has login/logout link. Or you can add one to your site’s navigation menus. See our guide on how to show different menus to logged in users
管理者
Loralee
Thanks for the great tutorial. I thought it didn’t work – and then silly me I hadn’t followed the last step to activate my new plugin!! Thanks so much for this! So much better than installing multiple new plugins.
vikas
Thanks mate….u were really helpful…
tc
Rajat
Thx syed it just worked perfectly
Bongo
Thanks for this, it helped me a lot
Andy Wagstaff
I have an area of my site that requires log-in registration.
I have made the admin bar “autohide” by requiring a plug-in, I don’t want to entirely disable it, as I need the abiity to change password, but is there any way of removing items from the bar for users? I don’t want the site name,WP logo or the theme extensions options on the left hand side.
Is this possible? I am sure it is, but I can’t work it out!!
Ta!! Really handy site by the way
Andy
Rajiv
Hi,
I want to disable BP Admin Bar for Logged Out Users.
Please help.
Ken Shoufer
Hello,
Your code worked fine when I tried it locally on my computer, but when I tried it on a fresh Wordpress install on my host server it would not let me log out. When I tried to log out, the address showing was “http://www.ken-shoufer.com/wordpress1/wp-login.php?action=logout&_wpnonce=9e7f51a307”.
I’m not sure what is wrong.
Editorial Staff
That’s weird because we have it running on our live site.
管理者
Adrian
Thanks!
Fabio Santos
You can use this nice plugin instead: http://wordpress.org/plugins/global-admin-bar-hide-or-remove/
Nate
i am trying to disable the W logo on the top left, the “My Sites” menu and the dashboard link on a buddypress multisite install. I want to keep the right side functional which shows the links to their buddypress profile settings. How can I achieve this?
Tanner Moushey
To avoid the blank space where the admin bar was, call the function in the “after_setup_theme” action instead of “init”.
Cristian O. Balan
Really perfect, thanks a lot!
Will
Thank you so much! This worked perfectly and resolved several hours of head-scratching.
Cristian B.
Really nice code. Are here also a fix to the blank bar that many here complains?
David
Hi,
To avoid the blank, just instead of :
add_action(‘init’, ‘remove_admin_bar’);
use:
add_action(‘after_setup_theme’, ‘remove_admin_bar’);
Cristian O. Balan
Thanks a lot man!
niki
Fantastic! Except I also have the blank space visible where the admin bar would be. Does anyone have a fix for this?
Marlita Hill
Hello. Thank you for this. How would I write the code if I only want the bar accessible to admin and contributors? I still do not want the contributors to have admin access to my backend.
Steve
Well… it removes the admin bar but it´s still occupying the space meaning there´s too much space up there now. I´m not sure it´s supposed to be that way?
Adam
worked …
Thanks a lot
Nick Cokas
Add the code and worked perfect. However, the user still sees a white space above were the toolbar existed before. Any ideas to remove that.
Thanks
Toby Couchman
Did you use a plugin to place all the necessary user stuff on the frontend?
My team recently built a site with similar requirements and I’d love to compare the processes.
Cheers
Toby
Mark Coleman
Do not pass a role name to current_user_can(), as this is not guaranteed to work correctly. from
http://codex.wordpress.org/Function_Reference/current_user_can
just FYI
Editorial Staff
Agreed. Just updated the code to make it into a function, and then adding it in via action.
管理者
Sally
Excellent post thanks so much!
Took me under a minute and the bar was gone… forever… truly grateful.
Sally x
Corey Freeman
Thanks to this I have one less plugin bloating my site. Woo!
Delton Childs
This is an awesome post. short, to the point and contained a useful snippet! Thank you so much!
I’m using the S2Member plugin also, I was very concerned about compatibility issues with plugin based solutions because of the various s2Membership Levels. This solutions is working wonderfully for me.
Thanks Again!
James Davis
Hi Guys,
Just found this bit of code and it worked perfect for my site…
Thanks so much
Cheers
James
AKA The Fitness Blogger
glueckpress
Nice. For Superadmins in a Multisite install it would read like if(!current_user_can(‘manage_network’)) //etc.