クライアントが重要なプラグインを誤って無効化し、重大な問題を引き起こしたWordPressサイトを数多く扱ってきました。これはよくある問題ですが、適切なアプローチで簡単に解決できます。
必須プラグインを無効化すると、重要な機能が壊れたり、サイトが使用不能になったりする可能性があります。そのため、誰がプラグインを無効化できるかを管理することは非常に重要です。
長年にわたり、これを防ぐための簡単な戦略を開発してきました。ユーザーロールを調整したり、メンバーシッププラグインを使用したり、カスタムコードを追加してプラグインへのアクセスをブロックしたりできます。
このガイドでは、クライアントがWordPressプラグインを無効化できないようにする方法を正確に説明します。これらの手順は簡単で、高度な技術知識は必要ありません。

クライアントがWordPressプラグインを無効化するのを防ぐ理由
他の人のためにウェブサイトを作成している場合、すべてのサイトにインストールする必須のWordPressプラグインのリストがあるかもしれません。これらは、クライアントをハッカーや悪意のあるコードから保護するセキュリティプラグインである可能性があります。
定期的なバックアップの作成やスパムコメントの削除など、重要なWordPressメンテナンスタスクを自動化するためにプラグインを使用することさえあります。
クライアントがこれらのプラグインのいずれかを誤って無効化した場合、ウェブサイトが攻撃に対して脆弱になったり、機能に影響が出たりする可能性があります。最悪の場合、ウェブサイトが完全に壊れてしまう可能性もあります。
これはあなたのせいではありませんが、それでもあなたの評判を損なう可能性のある悪いクライアント体験です。WordPressでクライアントが誤ってプラグインを無効化するのを防ぐ方法を見てみましょう。
下のクイックリンクを使用して、使用したい方法に直接ジャンプしてください。
- 方法1:デフォルトのWordPressユーザーロールを使用する(プラグイン不要)
- 方法2: Membersプラグインを使用する(カスタムクライアントロールを作成する)
- 方法3:カスタムPHPを使用する(クライアントが特定のプラグインを無効化できないようにする)
- ボーナスリソース:
方法1:デフォルトのWordPressユーザーロールを使用する(プラグイン不要)
WordPressには、シンプルでありながら強力なユーザー管理システムが付属しており、各ユーザーは割り当てられた役割に基づいて異なる権限を持っています。
WordPressをインストールすると、以下のユーザーロールが自動的に作成されます:
デフォルトでは、管理者のみがプラグインを管理する権限を持っており、これにはプラグインの無効化が含まれます。
これを踏まえて、クライアントがサイトを管理できるように、クライアント用に単一の管理者アカウントを作成することをお勧めします。その後、アクセスが必要だが管理者権限を必要としない他のすべての人のために、非管理者アカウントを作成できます。
管理者権限がない場合、ほとんどのクライアントはプラグインを無効にすることができません。
管理者以外のユーザーアカウントには、どのロールでも使用できます。ただし、コンテンツの作成、編集、公開、削除ができるエディターロールの使用をお勧めします。これは、他のユーザーが作成したコンテンツも含まれます。これにより、編集ワークフローを改善し、クライアントが新しいサイトを管理するのに役立ちます。
また、WordPressの経験があり、WordPressサイトの管理方法を理解している人に管理者アカウントを付与することも良い考えです。
1人以上のクライアントのアカウントを作成するには、WordPressダッシュボードのユーザー » 新規追加に移動します。次に、名前やメールアドレスなど、その人に関する情報を入力できます。

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

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

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

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

クライアントがプラグインを無効化するのを防ぐには、左側の「プラグイン」タブをクリックします。
この画面で、「プラグインのアクティブ化」という行の「拒否」ボックスをチェックします。これにより、ユーザーはWordPressプラグインのアクティブ化および無効化ができなくなります。

ユーザーロールの設定が完了したら、「ロールを追加」をクリックします。
このロールは、方法1で説明したのと同じプロセスに従って、任意のユーザーに割り当てることができます。
方法3:カスタムPHPを使用する(クライアントが特定のプラグインを無効化できないようにする)
クライアントがすべてのプラグインを無効化するのを止めたい場合は、上記の方法のいずれかを使用できます。
ただし、クライアントが必須ではないソフトウェアを無効化および削除できるようにしながら、特定のプラグインを保護したい場合もあります。
特定のプラグインを保護する最善の方法は、WordPressにカスタムコードを追加することです。これにより、特定のプラグインの「無効化」リンクを削除できます。
これは高度な方法なので、初心者にはお勧めしません。

注意: クライアントは、一括操作ドロップダウンメニューまたはFTPやphpMyAdminのような高度なツールを使用して、引き続きプラグインを無効化できることに注意してください。ただし、「無効化」リンクを削除することで、クライアントが誤って必須プラグインを無効化するのを大幅に困難にします。
まず、プラグインのファイル名とサーバー上の場所を知る必要があります。通常、これらのファイルはプラグイン名に.phpが付いた名前で、プラグインの名前が付いたフォルダ内にあります。たとえば、WooCommerceのファイル名はwoocommerce.phpで、woocommerceフォルダ内にあります。
ただし、特にプラグインの名前が長くて複雑な場合や複数の単語で構成されている場合は、確認する価値があります。たとえば、WordPressにインタラクティブな360度画像を追加するためにSR Product 360° View プラグインを使用している場合、そのファイル名は「sr.php」になります。
FileZillaのような FTPクライアントを使用してサイトのサーバーに接続するか、WordPressホスティングのcPanelにあるファイルマネージャーを使用することで、ファイル名と場所を確認できます。
FTPを初めて使用する場合は、FTPを使用してサイトに接続する方法に関する完全なガイドをご覧ください。
その後、/wp-content/plugins/に移動します。ここに、サイト上のすべての異なるプラグインが表示されます。

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

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

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

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

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

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

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

これで、プラグインメニューに移動してこれらのプラグインを無効化できます。
phpMyAdminまたはFTPクライアントを使用して、保護されたプラグインを無効化することもできます。これは、特定のプラグインを削除したいが、コードスニペットを完全に無効にして、すべての保護されたプラグインを脆弱な状態にしたくない場合に良い解決策となる可能性があります。
詳細については、WP-Adminにアクセスできない場合にすべてのプラグインを無効化する方法に関するガイドをご覧ください。
ボーナスリソース:
以下は、クライアントサイトの管理中に役立つと思われる、厳選された追加リソースです。
- WordPress管理画面のホワイトラベル化方法
- WordPressサイトのSEOレポートを作成する方法
- WordPress管理画面で壊れたCSSを修正する方法
- WordPressでクライアントダッシュボードを作成する方法
この記事が、クライアントがWordPressプラグインを無効化するのを防ぐ方法を学ぶのに役立ったことを願っています。また、WordPress管理画面から不要なメニュー項目を非表示にする方法に関する究極のガイドや、WordPressサイトを管理するための最高のモバイルアプリも参照することをお勧めします。
この記事が気に入ったら、WordPressのビデオチュートリアルについては、YouTubeチャンネルを購読してください。 TwitterやFacebookでもフォローできます。

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