もしあなたが他人のためにサイトを構築しているのであれば、おそらくすべてのクライアントのサイトにインストールするいくつかの重要なプラグインを持っていることでしょう。もしクライアントがこれらの重要なプラグインを誤って無効化してしまったら、そのサイトは完全に壊れてしまうかもしれません。
だからこそ、クライアントが特定の重要なプラグインを無効化できないようにすることが重要なのです。WPBeginnerでは、誰がサイト上のプラグインを見ることができるかをコントロールした経験があります。
簡単な方法は3つあります。ユーザー権限を変更する、メンバープラグインを使う、カスタムコードを追加してプラグインへのアクセスを防ぐ、です。
この投稿では、クライアントによるWordPressプラグインの無効化を阻止する方法を紹介する。
なぜクライアントがWordPressプラグインを無効化できないようにするのか?
もしあなたが他の人のためにウェブサイトを作成しているなら、すべてのサイトにインストールするWordPressプラグインの必需品のリストを持っているかもしれません。これらは、ハッカーや悪意のあるコードからクライアントを守るセキュリティプラグインかもしれません。
プラグインを使って、定期的なバックアップの作成やスパムコメントを削除するなど、WordPressの重要なメンテナンス作業を自動化することもできます。
クライアントが誤ってこれらのプラグインを無効化した場合、サイトが攻撃されやすくなったり、機能に影響が出たりする可能性があります。最悪の場合、サイトが完全に壊れてしまうことさえあります。
これはあなたの責任ではないとはいえ、あなたの評判を落としかねない悪いクライアント体験であることに変わりはありません。WordPressでクライアントが誤ってプラグインを無効化するのを防ぐ方法を見てみましょう。
以下のクイックリンクから、使いたい方法に直接ジャンプできます:
方法1:WordPressの初期設定のユーザーグループを使用する(プラグイン必須なし)
WordPressにはシンプルで強力なユーザー管理システムがあり、各ユーザーは割り当てられた権限グループによって異なる機能を持つ。
WordPressをインストールすると、以下のユーザー権限グループが自動的に作成されます:
初期設定では、管理者だけがプラグインを管理する権限を持っており、これにはプラグインの無効化も含まれます。
この点を考慮し、顧客用の個別管理者アカウントを作成し、顧客がサイトを管理できるようにすることをお勧めします。そして、管理者権限を必要としない、アクセスが必要な人のために、管理者以外のアカウントを作成することができます。
管理者権限がなければ、顧客の大半はプラグインを無効化することができません。
管理者以外のアカウントには、どの権限グループを使ってもかまいません。しかし、エディターを使用することをお勧めします。エディターでは、他のユーザーが作成したコンテンツも含め、コンテンツの作成、編集、公開、削除ができます。これにより、編集ワークフローが改善され、クライアントが新しいサイトを管理しやすくなります。
また、管理者アカウントはWordPressの経験があり、WordPressサイトの管理方法を理解している人に任せるのが良いでしょう。
一人または複数のクライアントのアカウントを作成するには、WordPressダッシュボードの ユーザー ” 新規追加に 進みます。次に、名前やメール・アドレスなど、その人に関する情報を入力します。
その後、Roleドロップダウンを開き、AdminやEditorなど、このユーザーに割り当てたい権限グループを選択します。
入力した情報に問題がなければ、「新規ユーザーを追加」をクリックします。
さらにアカウントを作成するには、上記と同じ手順を踏むだけです。このトピックについては、WordPressブログに新規ユーザーを追加する方法のガイドをご覧ください。
方法2:Membersプラグインを使用する(カスタマイザーグループを作成する)
時には、他のエリアへのアクセスを制限することなく、クライアントによるプラグインの無効化を阻止する必要があるかもしれません。
とはいえ、ビルトインされたユーザーの権限グループがあなたのサイトに合っていないかもしれません。例えば、エディターはプラグインを無効化することはできませんが、新規ユーザーを追加したり、WordPressテーマをインストールすることもできません。
初期設定のユーザー・ロールがクライアントに合わない場合は、適切な権限と能力を持つカスタマイザーロールを作成できます。チームや従業員ごとに異なる権限グループを作成することもできます。
カスタム権限を作成する最も簡単な方法は、無料のMembersプラグインを使用することです。このプラグインでは、新しいロールを作成し、WordPressプラグインを有効化したり無効化したりする機能を含め、それらのユーザー権限グループに機能を追加したり削除したりすることができます。
この権限により、以下の画像にあるように、左側のメニューからプラグインの 設定が削除される。
最初に行う必要があるのは、Membersプラグインのインストールと有効化です。詳しくは、WordPressプラグインのインストール方法のステップバイステップガイドをご覧ください。
有効化した後、Members ” Add New Roleに進みます。
Enter role name」フィールドに、使用したい権限グループ名を入力します。これはWordPressダッシュボードにアクセスできる人なら誰でも見ることができます。
その後は、権限の付与と拒否だ。
左のカラムには、再利用ブロックやWooCommerce商品など、異なるタイプのコンテンツがすべて表示されます。タブをクリックするだけで、そのコンテンツタイプのすべての権限が表示されます。
次に、各権限について「許可」または「拒否」のボックスをチェックします。より詳細な手順については、ユーザー権限を追加または削除する方法のガイドを参照してください。
クライアントがプラグインを無効化しないようにするには、左側の「プラグイン」タブをクリックします。
この画面で、「プラグインを有効化する」という行の「拒否」にチェックを入れる。これにより、ユーザーはWordPressプラグインを有効化したり無効化したりできなくなる。
ユーザー権限のグループの設定に満足したら、「Add Role」をクリックします。
方法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の出番だ。
WPCodeは、200万以上のWordPressサイトで使用されている最高のコードスニペットプラグインです。カスタムのCSS、HTML、PHPなどを簡単に追加できます。
最初に行う必要があるのは、無料の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は、すべての投稿の後、フロントエンドのみ、または管理者のみなど、さまざまな場所にコードを追加することができます。
WordPressの管理エリアでPHPコードを使用するだけなので、まだ選択されていなければ「Auto Insert」をクリックしてください。次に、「場所」のドロップダウンメニューを開き、「管理者のみ」を選択します。
その後、画面を一番上までスクロールし、「Inactive」トグルをクリックすると「Active」に変わります。
最後に「Save Snippet」をクリックして、PHPスニペットをライブにする。
これで、左側のメニューから「プラグイン」を選択すると、それらのプラグインの「無効化」リンクが削除されているのがわかる。
無効化」リンクを元に戻したい場合は、コードスニペットを無効化することができます。コード・スニペット“ コード・スニペットに アクセスし、スニペットの横にあるスイッチをクリックするだけで、青色(有効化)から灰色(無効化)に変わります。
プラグインメニューに アクセスして、これらのプラグインを無効化することができます。
phpMyAdminやFTPクライアントを使用して、保護されたプラグインを無効化することもできます。特定のプラグインを削除したいが、コードスニペットを完全に無効化して、保護されているプラグインをすべて脆弱なままにしておきたくない場合は、この方法がよいでしょう。
さらに詳しく知りたい方は、WP-Adminにアクセスできないときにすべてのプラグインを無効化する方法をご覧ください。
この投稿が、クライアントによる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.
THANKGOD JONATHAN
This is great, but I think for me it’s not necessary to do that. Your clients should have absolute control over their websites except where they tell you to keep on maintaining it for them.
What you should do instead is to tell them exerctly the plugins that are very important for the primary function of the website and once that should not be deleted. And also tell them what they should be careful about and advice them to hire an expert to do the technical aspects for them and also keep keep regular backups.
Ibrahim Rumani
But with this method the plugins can still be disabled via bulk options.
WPBeginner Support
The disable option should be removed from the dropdown of the bulk action options
管理者
Bart Kuijper
The article and code are both useful and provide some nice insights. However it’s important to note that using the example code, administrators can still easily disable plugins by simply ticking the box in front of one or more plugins and then selecting ‘Deactivate’ from the ‘Bulk Actions’ drop-down list.
WPBeginner Support
Thank you for letting us know, we’ll be sure to look into updating the code when we’re able.
管理者