クライアントのためにウェブサイトを構築する際、誤って無効化されたプラグインは深刻な問題を引き起こす可能性があります。
必須プラグインを無効化すると、重要な機能が壊れたり、サイトが使用不能になったりする可能性があります。そのため、誰がプラグインを無効化できるかを制御することが非常に重要です。
サイトが安全に保たれるように、ユーザー権限の競合、メニューの表示、フック実行の信頼性についてこれらの方法をテストしました。
- デフォルトのWordPressロールを使用してアクセスを制限する
- 特定の権限を持つカスタムロールを作成する
- 個々のプラグインを保護するためにカスタムコードを追加する
このガイドでは、クライアントがWordPressプラグインを無効化するのを停止する方法を正確に説明します。これらの手順は簡単で、どのWordPressサイトでも機能します。

TL;DR: クライアントがプラグインを無効化するのを防ぐには、デフォルトのWordPressエディターロールを使用するか、Membersプラグインでカスタムロールを作成するか、WordPress用の最高のコードスニペットプラグインであるWPCodeを使用します。これらの方法は、バックアップやセキュリティのような重要な機能を誤って無効化されないように保護するのに役立ちます。
クライアントがWordPressプラグインを無効化するのを防ぐ理由
クライアントのウェブサイトを作成する場合、おそらくすべてのサイトに必須のプラグインをインストールするでしょう。これには、ハッカーや悪意のあるコードから保護するWordfenceやSucuriのようなセキュリティプラグインが含まれるかもしれません。
100万以上のウェブサイトで使用されている最高のWordPressバックアップおよび移行プラグインであるDuplicatorや、定期的なバックアップの作成のようなWordPressメンテナンスタスクを自動化するためのUpdraftPlusのようなプラグインを使用するかもしれません。
クライアントがこれらのプラグインのいずれかを誤って無効にした場合、ウェブサイトが攻撃に対して脆弱になったり、機能に影響が出たりする可能性があります。トラフィックが多いときにサーバーが過負荷になったため、クライアントがキャッシュプラグインを無効にしたことでサイトがダウンするのを見たことがあります。
最悪の場合、ハッキングやサーバークラッシュの直前にセキュリティプラグインやバックアッププラグインを無効にすると、データが永久に失われる可能性があります。これはあなたのせいではありませんが、あなたの評判を損なう可能性のある悪いクライアント体験を生み出します。
WordPressでクライアントが誤ってプラグインを無効にするのを防ぐ方法を見てみましょう。
下のクイックリンクを使用して、使用したい方法に直接ジャンプしてください。
方法1:デフォルトのWordPressユーザーロールを使用する(プラグイン不要)
デフォルトでは、WordPressの管理者のみがプラグインを無効にできます。これは、サイトで管理者権限を持つユーザーを管理することで、プラグインへのアクセスを制御できることを意味します。
WordPressには組み込みのユーザー管理システムがあり、各ユーザーは割り当てられた役割に基づいて異なる権限を持っています。
WordPressをインストールすると、これらのユーザーロールが自動的に作成されます。
- 管理者(プラグイン管理を含むサイト全体の制御)
- 編集者(すべてのコンテンツを公開および管理できるが、プラグインは管理できない)
- 著者(自身の投稿のみを公開および管理できる)
- 寄稿者(自身の投稿を作成および管理できるが、公開はできない)
- 購読者(プロフィールのみを管理できる)
デフォルトでは、管理者ロールのみがプラグインの管理(有効化および無効化を含む)を許可されています。
クライアントがサイトを管理できるように、単一の管理者アカウントを作成することをお勧めします。その後、アクセスは必要だが管理者権限は不要な他のユーザーのために、管理者以外の(非管理者)アカウントを作成できます。
管理者権限がないと、ほとんどのクライアントはプラグインを無効化できません。管理者以外の(非管理者)アカウントには、任意のロールを使用できます。
しかし、私は通常クライアントに編集者ロールを割り当てます。なぜなら、これによりクライアントは他の人が作成したコンテンツを含む、コンテンツの作成、編集、公開、削除ができるようになるからです。これは編集ワークフローを改善し、クライアントが新しいサイトを効果的に管理するのに役立ちます。
また、WordPressの経験があり、安全にウェブサイトを管理する方法を理解している人に管理者アカウントを付与することも良い考えです。
1人以上のクライアントのアカウントを作成するには、WordPressダッシュボードでユーザー » 新規追加に移動します。次に、その人の名前やメールアドレスなどの情報を入力できます。

これが完了したら、ロールのドロップダウンを開き、このユーザーに割り当てたいロール(管理者やエディターなど)を選択します。
入力した情報に満足したら、「新規ユーザーを追加」をクリックします。

さらにアカウントを作成するには、上記と同じ手順を繰り返してください。このトピックの詳細については、WordPressブログに新しいユーザーを追加する方法に関するガイドをご覧ください。
方法2: Membersプラグインを使用する(カスタムクライアントロールを作成する)
場合によっては、WordPressダッシュボードの他の領域へのアクセスを制限することなく、クライアントがプラグインを無効化するのを停止する必要があるかもしれません。
とはいえ、組み込みのユーザーロールはあなたのウェブサイトに適していない場合があります。たとえば、編集者はプラグインを無効化することはできませんが、新しいユーザーを追加したりWordPressテーマをインストールしたりすることもできません。これはクライアントにとって問題となる可能性があります。
デフォルトのユーザーロールがクライアントに完全に合わない場合は、必要な権限を正確に持つカスタムロールを作成できます。チームごと、または個々の従業員ごとに異なるロールを作成することもできます。
カスタムロールを作成する最も簡単な方法は、無料の Members プラグインを使用することです。30万以上の有効なインストール数を誇るMembersを使用すると、新しいロールを作成し、WordPressプラグインの有効化および無効化の機能を含む、それらのユーザーロールに機能を追加および削除できます。
この権限を削除すると、次の画像に示すように、左側のメニューからプラグイン設定が非表示になります。

まず最初に行う必要があるのは、Membersプラグインをインストールして有効化することです。詳細については、WordPressプラグインのインストール方法に関するステップバイステップガイドをご覧ください。
有効化後、メンバー » 新規追加 ロールに移動します。

「ロール名を入力」フィールドに、使用したい名前を入力します。これは、WordPress ダッシュボードにアクセスできる人なら誰でも表示されます。
その後、権限を付与および拒否する時間です。
左側の列には、再利用可能なブロックやWooCommerce製品など、さまざまな種類のコンテンツが表示されます。タブをクリックするだけで、そのコンテンツタイプのすべての権限が表示されます。
その後、「付与」または「拒否」のチェックボックスを選択して、各権限を設定します。詳細な手順については、ユーザー権限の追加または削除方法に関するガイドをご覧ください。

クライアントがプラグインを無効化するのを防ぐには、左側の「プラグイン」タブをクリックします。
この画面で、「プラグインを有効化」という行の「拒否」ボックスにチェックを入れます。「プラグインを有効化」権限は、プラグインの有効化と無効化の両方を制御するWordPressのコア権限です。この単一の権限を拒否することで、両方の操作を防ぐことができます。

私はこの設定を複数のクライアントサイトでテストし、この権限が拒否されたユーザーはプラグインメニューにアクセスしたり、プラグインの状態を変更したりできないことを確認しました。
ユーザーロールの設定が完了したら、「ロールを追加」をクリックします。
このロールは、方法1で説明したのと同じプロセスに従って、任意のユーザーに割り当てることができます。
方法3:カスタムPHPを使用する(クライアントが特定のプラグインを無効化できないようにする)
クライアントがすべてのプラグインを無効化するのを止めたい場合は、上記の方法のいずれかを使用できます。
ただし、クライアントが不要なソフトウェアを無効化および削除できるようにしながら、特定の重要なプラグインを保護したい場合があります。
特定のプラグインを保護する最善の方法は、WordPressにカスタムコードを追加することです。これにより、特定のプラグインの「無効化」リンクを削除できます。
これはPHPコードの編集とファイルパスの理解が必要な高度な方法です。コードの構文エラーはサイトを破損させる可能性があるため、テーマファイルを直接編集する代わりに、より安全な実装のためにWPCodeを使用することをお勧めします。

重要な制限事項: このコードは表示上の「無効化」リンクを削除しますが、完全な保護を提供するものではありません。「一括操作」ドロップダウンメニュー、またはFTPやphpMyAdminのような高度なツールを使用すると、ユーザーは引き続きプラグインを無効化できます。いかなる方法でもユーザーが無効化できないように完全に保護するには、方法1または方法2を使用してactivate_plugins権限を完全に削除してください。ただし、無効化リンクを非表示にすることで、クライアントが不可欠なプラグインを誤って無効化することがはるかに困難になります。
まず、プラグインのファイル名とサーバー上の場所を知る必要があります。通常、これらのファイルはプラグイン名に.phpが付いた名前で、プラグインの名前が付いたフォルダ内にあります。たとえば、WooCommerceのファイル名はwoocommerce.phpで、woocommerceフォルダ内にあります。
ただし、特にプラグインの名前が長くて複雑な場合や複数の単語で構成されている場合は、確認する価値があります。
たとえば、サイトの検索結果を改善するためにSearchWPプラグインを使用している場合、そのファイル名は`searchwp.php`で、`searchwp`フォルダ内にあります。
サイトのサーバーにFileZillaのようなFTPクライアントを使用して接続するか、WordPressホスティングコントロールパネルのファイルマネージャーを使用することで、ファイル名と場所を確認できます。
FTPの使用が初めての場合は、FTPを使用してサイトに接続する方法に関する完全なガイドを参照してください。
その後、/wp-content/plugins/に移動します。ここに、サイト上のすべての異なるプラグインが表示されます。

保護したいプラグインを見つけて、そのフォルダを開くだけです。
その後、.phpファイルを見つけます。

次に、フォルダ名と.phpファイルに注意してください。これらの情報はコードで使用します。保護したいすべてのプラグインに対して、このプロセスを繰り返すだけです。
それが完了したら、サイトにコードスニペットを追加します。多くの場合、ガイドではサイトのfunctions.phpファイルにコードを追加するように指示されます。
しかし、これは推奨されません。簡単なエラーでも無数の一般的なWordPressエラーを引き起こす可能性があります。また、WordPressテーマを更新するとカスタムコードが失われます。
そこでWPCodeの出番です。
これは200万以上のWordPressウェブサイトで使用されている最高のコードスニペットプラグインです。WPCodeを使用すると、テーマファイルを直接編集するリスクなしに、カスタムCSS、HTML、PHPなどを簡単に追加できます。詳細については、完全なWPCodeレビューをご覧ください。
最初に行う必要があるのは、 無料のWPCodeプラグインをインストールして有効化することです。詳細については、WordPressプラグインのインストール方法に関するステップバイステップガイドをご覧ください。
有効化したら、Code Snippets » Add Snippet に移動します。

ここでは、サイトに追加できるすべての既製のスニペットが表示されます。これらには、コメントを完全に無効にする、通常WordPressがサポートしないファイルタイプをアップロードする、添付ファイルページを無効にするなどのスニペットが含まれます。
その代わりに、「カスタムコードの追加」にマウスカーソルを合わせ、表示されたら「スニペットを使用」を選択します。

開始するには、カスタムコードスニペットのタイトルを入力します。これは、WordPressダッシュボードでスニペットを識別するのに役立つものであれば何でも構いません。
その後、「コードタイプ」ドロップダウンを開き、「PHPスニペット」を選択します。

これで、カスタムPHPを追加する準備ができました。
保護するプラグインによって実際のコードは異なりますが、使用できるテンプレートを以下に示します。このチュートリアルは、2026年2月現在、WordPress 6.7およびWPCode 2.1.16でテストされました。
add_filter( 'plugin_action_links', 'disable_plugin_deactivation', 10, 4 );
function disable_plugin_deactivation( $actions, $plugin_file, $plugin_data, $context ) {
// Check if the 'deactivate' action exists in the actions array
// and if the current plugin matches our protected plugins list
if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin_file, array(
'wpforms/wpforms.php', // WPForms contact form plugin
'woocommerce/woocommerce.php' // WooCommerce eCommerce plugin
)))
unset( $actions['deactivate'] ); // Remove the deactivate link
return $actions;
}
このスニペットは、WPFormsとWooCommerceの無効化を無効にします。他のプラグインを保護するには、前のステップで取得したフォルダとファイル名で「wpforms/wpforms.php」と「woocommerce/woocommerce.php」を置き換えるだけです。
より多くのプラグインの無効化を無効にするには、配列に追加するだけです。例:
'wpforms/wpforms.php', // WPForms contact form plugin
'woocommerce/woocommerce.php', // WooCommerce eCommerce plugin
'service-box/service-box.php' // Service Box plugin
)))
その後、「挿入」セクションまでスクロールします。WPCode は、すべての投稿の後、フロントエンドのみ、または管理者のみなど、さまざまな場所にコードを追加できます。
PHPコードはWordPress管理画面でのみ使用する必要があるため、「自動挿入」がまだ選択されていない場合はクリックします。次に、「場所」ドロップダウンメニューを開き、「管理画面のみ」を選択します。

その後、画面の上部までスクロールして「非アクティブ」トグルをクリックし、「アクティブ」に変更します。
最後に、「スニペットを保存」をクリックしてPHPスニペットを公開します。

左側のメニューから「プラグイン」を選択すると、「無効化」リンクがそれらのプラグインから削除されていることがわかります。
いずれかの時点で「無効化」リンクを復元する必要がある場合は、コードスニペットを無効にすることができます。単にコードスニペット » すべてのスニペットに移動し、スニペットの横にあるスイッチをクリックして、青(有効)からグレー(無効)に切り替えます。

これで、プラグインメニューに移動してこれらのプラグインを無効化できます。
phpMyAdminまたはFTPクライアントを使用して、保護されたプラグインを無効化することもできます。これは、特定のプラグインを削除したいが、コードスニペットを完全に無効にして、すべての保護されたプラグインを脆弱な状態にしたくない場合に良い解決策となる可能性があります。
詳細については、WP-Adminにアクセスできない場合にすべてのプラグインを無効にする方法に関するガイドをご覧ください。
よくある質問
クライアントはFTPまたはphpMyAdminを使用してプラグインを無効化できますか?
はい、このチュートリアルの3つの方法はすべて、WordPress管理ダッシュボード経由でのみプラグインの無効化を防ぎます。FTPまたはデータベースへのアクセス権を持つユーザーは、FTP経由でプラグインフォルダの名前を変更したり、データベースでプラグインのステータスを変更したりすることで、引き続きプラグインを無効化できます。
完全なセキュリティのためには、FTPおよびデータベースアクセスを信頼できる管理者のみに制限する必要があります。ほとんどのホスティングプロバイダーは、制限された権限を持つ個別のFTPアカウントを作成できます。
これらの方法はWordPressマルチサイトで機能しますか?
はい、ただし重要な違いがあります。WordPressマルチサイトでは、デフォルトでスーパー管理者はネットワーク全体でプラグインを管理できます。
個々のサイト管理者は、スーパー管理者が「プラグインの管理」権限を付与しない限り、プラグインを有効化または無効化することはできません。このガイドのメソッド2と3は、マルチサイトでスーパー管理者のアクセスを制御したり、特定のプラグインをすべての管理者から保護したりするために機能します。
間違って自分自身をロックアウトしてしまったらどうなりますか?
誤って自分自身のプラグイン管理権限を削除してしまった場合、FTPまたはホスティングコントロールパネルのファイルマネージャーを使用してアクセスを復元できます。サイトに接続し、/wp-content/plugins/members/に移動して、Membersプラグインフォルダの名前をmembers-disabledのようなものに変更します。
これにより、Membersプラグインが無効化され、デフォルトのWordPress権限が復元されます。WPCodeを使用するメソッド3の場合、WPCodeプラグインフォルダの名前を変更してカスタムコードを一時的に無効にします。
初心者にとって最適な方法はどれですか?
初心者のほとんどには、プラグインやコードを必要としないため、メソッド1(デフォルトのWordPressロールを使用)を推奨します。クライアントにエディターロールを割り当てるだけで、プラグインを無効化できなくなります。
クライアントがユーザーの追加やテーマのインストールなど、より高度な権限を必要とし、同時にプラグインを保護する必要がある場合は、Membersプラグインを使用したメソッド2を使用してください。メソッド3は、特定のプラグインに対して詳細な制御を必要とする経験豊富なユーザーのために予約しておくのが最適です。
ボーナスリソース:
以下は、クライアントサイトの管理中に役立つと思われる、厳選された追加リソースです。
- WordPress管理画面のホワイトラベル化方法
- WordPressサイトのSEOレポートを作成する方法
- WordPress管理画面で壊れたCSSを修正する方法
- WordPressでクライアントダッシュボードを作成する方法
この記事が、クライアントがWordPressプラグインを無効化するのを防ぐ方法を学ぶのに役立ったことを願っています。また、WordPress管理画面から不要なメニュー項目を非表示にする方法に関する究極のガイドや、WordPressサイトを管理するための最高のモバイルアプリもご覧になりたいかもしれません。
この記事が気に入った場合は、WordPressのビデオチュートリアルのために、YouTubeチャンネルを購読してください。また、TwitterやFacebookでも私たちを見つけることができます。

イジー・ヴァネック
これは非常に良いアイデアです。多くのウェブサイトを完璧に機能するように作成しても、後で顧客が必要ないと思ったプラグインを無効にしたために問題が発生したと報告されることがあります。管理者が技術的な管理を完全に自分の責任で行う必要があるこれらの状況では、ユーザーロールのオプション以外にもこれは素晴らしい解決策です。素晴らしい記事、そしてありがとうございます。
神に感謝ジョナサン
これは素晴らしいですが、私にとっては必要ないと思います。クライアントは、あなたがメンテナンスを続けるように指示した場合を除き、自分のウェブサイトを完全に管理できるべきです。
代わりに、ウェブサイトの主要な機能に非常に重要なプラグインと、削除してはならないものを正確に伝えるべきです。また、注意すべき点も伝え、技術的な側面は専門家に任せること、そして定期的なバックアップを維持することをアドバイスしてください。
イジー・ヴァネック
一方で理解できますが、他方ではそれは諸刃の剣です。私は顧客に完全な自由を与えてウェブサイトを引き渡しましたが、顧客がプラグインをアンインストールするなどサイトに変更を加え、それが機能しないと言ってサイトをあなたに返却する状況が時々発生しました。あなたは余分な作業を抱え、多くの場合、その対価は支払われませんでした。そのため、安全策として、私はこれを完全に理解しており、技術的に熟練した顧客とそうでない顧客を区別することが重要だと思います。なぜこのように設定されているのかを率直に伝えることも問題ありません。多くの人は理解し、簡単に「壊せない」ことにむしろ喜ぶでしょう。
イブラヒム・ルマニ
ただし、この方法では、プラグインは一括オプションを介して無効にすることができます。
WPBeginnerサポート
The disable option should be removed from the dropdown of the bulk action options
管理者
バート・カイジュパー
記事とコードはどちらも有用で、いくつかの良い洞察を提供しています。ただし、例のコードを使用すると、管理者は、1つ以上のプラグインの前のチェックボックスをオンにしてから、「一括操作」ドロップダウンリストから「無効化」を選択するだけで、簡単にプラグインを無効化できることに注意することが重要です。
WPBeginnerサポート
お知らせいただきありがとうございます。可能な限りコードの更新を検討いたします。
管理者