WordPressにはテーマやプラグインのエディターがビルトインされていることをご存知ですか?このプレーンコードエディターにより、WordPressダッシュボードから直接テーマやプラグインファイルを編集することができます。
これはとても便利なことのように聞こえるかもしれませんが、このようにファイルを直接編集できるようにすることが、サイトを壊すなどの問題につながる可能性があることを私たちは見てきました。他の脆弱性と組み合わせると、潜在的なセキュリティ問題を引き起こす可能性さえあります。
この記事では、WordPressの管理エリアからテーマやプラグインのエディタを無効にする方法を紹介し、なぜそれが賢いアイデアなのかを説明します。
WordPressでテーマやプラグインのエディターを無効化する理由とは?
WordPressにはコードエディターがビルトインされており、管理エリアからWordPressテーマやプラグインファイルを直接編集することができます。
テーマエディターは 外観 ” テーマファイルエディターページにあります。初期設定では、現在有効化したテーマのファイルが表示されます。
同様に、プラグインエディターはプラグイン ” プラグインファイルエディターページで見ることができます。初期設定では、あなたのサイトにインストールされているプラグインがアルファベット順に表示されます。
初めてテーマやプラグインのエディターページにアクセスすると、WordPressはエディターを使用するとサイトが壊れる可能性があることを警告します。
WordPress 4.9では、テーマとプラグインのエディターがアップグレードされ、ユーザーが誤ってサイトを壊してしまうのを防ぐようになりました。ほとんどの場合、エディターは致命的なエラーを検出し、変更を元に戻します。
しかし、これは保証されたものではなく、コードがすり抜け、WordPressの管理エリアにアクセスできなくなる可能性があります。
ビルトインファイルエディターの最大の問題は、サイトにあらゆる種類のコードを追加するためのフルアクセスが可能なことだ。
ハッカーがWordPressの管理エリアに侵入した場合、ビルトインエディターを使ってWordPressのすべてのデータにアクセスすることができる。
また、ハッカーはWordPressサイトからマルウェアを配布したり、DDOS攻撃を仕掛けるために利用することもできます。
WordPressのセキュリティを向上させるには、ビルトインファイルエディターを完全に削除することをお勧めします。
ということで、WordPressでテーマやプラグインのエディターを簡単に無効化する方法を見てみよう。
WordPressでテーマとプラグインのエディターを無効化する方法
WordPressでテーマやプラグインのエディターを無効化するのはとても簡単だ。しかし、WordPressにコードを追加する必要がある。コードを追加したことがない場合は、ウェブからWordPressにスニペットをペーストするガイドを参照してください。
テーマのfunctions.phpファイル、サイト固有のプラグイン、またはコード・スニペット・プラグインを使用して、このコード行を追加する必要があります。
define( 'DISALLOW_FILE_EDIT', true );
WPCodeプラグインは無料で使いやすく、サイトが壊れる心配もありません。
注: WPCodeには、コードリビジョン、自動変換ピクセル、スケジュールスニペットなどの高度な機能を備えたプレミアムバージョンもあります。
まず、無料のWPCodeプラグインをインストールし、有効化する必要があります。詳しい手順は、WordPressプラグインのインストール方法をご覧ください。
プラグインを有効化したら、WordPressダッシュボードからCode Snippets“ Add Snippetに移動します。次に、’カスタムコードを追加(新規スニペット)’オプションにマウスオーバーし、’スニペットを使用’ボタンをクリックします。
次に、スニペットのコードタイプを選択するプロンプトが表示されます。PHPスニペット」オプションを選択してください。
その後、スニペットのタイトルを追加し、上記のコードを「コード・プレビュー」ボックスに貼り付けます。
最後に、スイッチを「Inactive」から「Active」に切り替え、「Save Snippet」ボタンをクリックする。
以上、WordPress管理エリアのテーマとプラグインメニューから、プラグインとテーマのエディターが消える。
別の方法として、wp-config.phpファイルを編集し、上記のコードを「すべてです!ハッピー公開する’:
その後、変更を保存し、ファイルをサイトにアップロードしてください。
ファイルを直接編集したくない場合は、1クリックハードニング機能を提供するSucuri WordPressプラグインをインストールすることができます。
WordPressテーマとプラグインファイルの正しい編集方法
多くのユーザーは実際にWordPressのテーマやプラグインエディターを使ってコードを調べたり、カスタマイCSSを追加したり、子テーマのコードを編集したりしています。
テーマにカスタムCSSを追加するだけなら、外観 ” カスタマイズにあるテーマカスタマイザーを使って行うことができます。
詳しくは、WordPressでサイトを壊さずにカスタムCSSを追加する方法をご覧ください。
プラグイン内のコードを調べたい場合は、FTPクライアントを使えば可能です。
より良いファイル管理とシンタックスハイライトのために、コンピューター上でWordPressファイルを編集するためにこれらのコードエディターのいずれかを使用することができます。
最後になるが、コードを書かずにカスタマイザーの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.
Jiří Vaněk
Thanks for the tutorial. I used the wp-config.php file and it works great. Especially for customer sites, this option seems very good to me, so that they don’t modify the codes of the site and also in terms of security.
In the end, I chose the wp-config file mainly so that this function could not be simply turned off from the administration, where it didn’t make any sense to me.
WPBeginner Support
Makes sense
管理者
Bob Putnak
This wont accomplish anything these days.
1) Using the CODE SNIPPETS solution, if the hacker has access to the admin panel, they will simply go to the CODE SNIPPETS panel and DISABLE the snippet.
2) Likewise, if you added it to the wp-config file, I cant see any reason why someone with access to the Admin panel could not simply INSTALL the CODE SNIPPETS plugin, activate it, then set a rule for:
define( ‘DISALLOW_FILE_EDIT’, true );
Seems to me that if the hacker has access to the admin panel, there is absolutely no solution to this problem.
If you disagree, please explain why. My login seems 100% sound.
WPBeginner Support
If someone has admin level access to your site then they could look to add a plugin to bypass the issue. There are other user roles that have access to these sections of your site but not the ability to add plugins and this can help protect you from a non-admin who has this level of access from getting into your files.
管理者
Robin Hood
Thanks for sharing this post. Helpful and Informative.
WPBeginner Support
You’re welcome, glad our content could be helpful
管理者
isabella
Hello there! I have the opposite problem I need to add a CSS code in the editor BUT the editor disappeared.
Do you have any suggestions?
thanks a lot
cheers
Mike Sawyer
Thank you for all the tips and helpful advice. This is the go to for me in case I get stuck. Thanks.
Raj
Unfortunately this isn’t working for me, I have updated the wp-config.php file but the editor option is still there in my wp dashboard, can you suggest me something?
Dave
Hi Raj,
I had the same issue, but was able to fix it. Not sure if this is your same issue, but I realized that when copy/pasting from an internet post, sometimes the single/double quotation marks (‘ ‘) or (” “) may be a curly quote vs. a straight quote. Try deleting the single quotes, and retyping them.
Hope this helps!
-Dave
William Marques
Is it possible disable save option for all? I want show control panel for my clients, but I do not want that they save the changes.
Bella
A trillion thank you’s!!
This tiny piece of code has rocked my world!
How have I not come across you in the past??
Keep smiling – Bella
Jimit Shah
hi
I want to disable paste command ( through mouse and ctr+v)in my php file in theme editor. So that i can write code not copy any code from outside.I want to give access manual code writing . please help me
Raja Dileep Kumar
define(‘DISALLOW_FILE_EDIT’, true); this function will work on themes/functions.php if i paste the code in wordpress
Pramod Kumar
It works, Thanks.
John McNamara
Hi there just wondering if anyone found a way to get around this without access as we have paid $1800 for some to set up a Website that is just a theme with out any changes made to it and wants to be paid more to unlock the editor for us
Please help!!
WPBeginner Support
If you have FTP access, or access to the hosting control panel, then you can easily edit the wp-config.php file and remove the code:
1-click Use in WordPress
管理者
Graham Peckham
Hi, well I was hacked yesterday by someone who installed MonsterInsights plugin to my web site, BUT, the line of code you suggest was already installed on wp-config.
So any suggestions for stopping these
Cheers
WPBeginner Support
Hi Graham,
If you suspect that your website may be hacked, then please see our guide on recovering a hacked WordPress site. You may also want to follow our complete WordPress security guide to protect your website in the future.
Prasath
define( ‘DISALLOW_FILE_EDIT’, true );
This one disable the editor for complete pages. I need to disable only for home page and for particular user(for Ex: Editor) . Coz I used page builder. My clients are not intrested to look over that..
Can any one help me ….
Mark Corder
I can also confirm that this works when the line is added to a Site-Specific Plugin – which you’ll also find the recipe for here on WPBeginner…
… so Thanks to you folks for all of it!
Melissa
Hey there! My cheeky developer has done this to me and I need access… is there a way to “undo” this clever trick without having FTP access?
I am also a developer and able to edit the files without any issues, but my contracted developer wants to charge me to access the code… so I am hoping I can jump in somehow!
Mel
Al Klein
Did you contract for ‘all deliverables’? If so, have him deliver the FTP password – it’s a deliverable. (It’s a contract, so it can be enforced by a court. You may not be able to sue for specific action, but you can sue for whatever it will cost to have another developer create a new site that’s exactly like the old one [which will probably bankrupt your existing developer – so it will make him prone to turn everything over to you].)
If you didn’t have ‘all deliverables’ included in the contract, or don’t have a signed contract, consider it a cheap legal lesson. (Law school costs a lot more.)
Bill
Great tip.
Is there a way to disable a specific editor (for example Elementor) for a specific post (page) type while still allowing access to the classic editor?
I hope this can be done in the child functions file.
Suresh Khanal
while reading this post I was wondering why would anyone need to hide the editor link in the WordPress Admin because it is only the administrators who gain access to those links and if they do not get permission to do the things the required, what’s the use? anywhere realize that is good with it helpful when you are setting up blogs for you clients. Thanks for the good tips.
Mark Corder
This is an excellent tip – and it worked fine for me adding the line to the functions.php file in my twentytwelve-child-theme’s folder. I still see options for customizing the theme (header, background, etc.) – but the “editor” links are now gone. (I had to press CTRL-R to force a page reload to make them disappear.)
I always try to remove everything from the backend that a client really shouldn’t be messing with, and those plugin & theme editors are just inviting disaster! It’s wonderful to be able to remove them with a single line of code…
I really appreciate these tips that edit child-theme functions and files to accomplish something rather than just recommending another plugin – though I realize this departs a bit from the “beginner” stuff.
And if you haven’t had this request a thousand times already, I’d love to see you folks open a “WPAdvanced” site for us hard-core folks!
Editorial Staff
Thanks for the feedback Mark. Yes, we have gotten the request for WPAdvanced in the past. For now our focus is to continue to improve WPBeginner (we’re still not there yet).
-Syed
管理者
Gray Ayer
A problem encountered with this technique is that it also prevents anyone from upgrading the outdated plugins. Any ideas on that, besides disabling the addition to the wp-config file, upgrading, then restoring the hardened security?
Editorial Staff
That’s interesting. We have this code running on our site, and we can do 1-click upgrades.
管理者
joanpique
Hi, thanks for the tip, yes, it works on functions.php file.
But this code turn me off my theme options page :(…, is there any other code that only hide editors or something to put in the options page for avoid hidding?
Renan Santos
All you have to do is open your wp-config.php file and paste the code!
Devin Walker
99% of my clients are non-technical