プラグインのアンインストールは、常にWordPressを元の状態に戻しますか?
-
16-10-2019 - |
質問
WordPressの展開されたインスタンス内のプラグインの寿命とは何ですか?
すなわち:
- プラグインは既存のファイルを変更しますか、それともWordPress内の定義された拡張ポイントのみを使用しますか?
- プラグインはデータベーススキーマを変更できますか(例:新しい列の追加)?
- WordPressは、プラグインのアンインストールが常に元の状態にWPを残すことをどのように確認しますか? (それは?)
解決
短い答え:
- プラグインは既存のファイルを変更せず、露出したAPIを介してWordPressに接続します。
- プラグインはデータベーススキーマを変更できます。
- プラグインはきれいにアンインストールする必要はありません。
プラグインフック
WordPressコアによって露出した特定のポイントでWordPressにプラグインフック。
http://codex.wordpress.org/plugin_api
例として、関数 get_option()
データベースからサイトオプションを読み取ります。この関数内で実際のアクションが実行される前に、WordPressコール apply_filters( 'pre_option_' . $option, false )
. 。オプションが与えられました foobar
, 、プラグインは、次のコードでこのオプションの真の値をオーバーライドできます。
function override_foobar( $unused ) {
return 'My custom value.';
}
add_filter( 'pre_option_foobar', 'override_foobar' ); // add_filter(hook, function)
参照してください http://adambrown.info/p/wp_hooks/.
データベースを変更するプラグイン
プラグインには、WordPressデータベースユーザーがまだその許可があると仮定すると、データベースを変更する機能があります。より複雑なプラグインの一部は、独自のテーブルを追加します。プラグインがコアテーブルを変更できる可能性があり、うまくいけば、プラグインが削除された場合に物事を壊さない方法でこれを行うことができます。
これは、プラグインごとに調べる必要があります。
プラグインのアンインストール
deactivate_plugins()
関数はアクションを呼び出します do_action( 'deactivate_' . trim( $plugin ) )
. 。プラグインが無効になっているときに特定のことが発生する必要がある場合、プラグインはこのアクションにフックする必要があります。私の経験では、多くの非アクティブ化のクリーンアップを行うプラグインはほとんどありません。再びアクティブ化された場合に備えて、設定をコールドストレージに配置します。
他のヒント
WordPressのプラグインは、コードの言うことを行います。あなたの質問に具体的に答えるために、
- そうすべきではありませんが、コアファイルの変更を妨げるものはありません。
- WordPress自体ができる方法で、データベースと完全にインターフェイスすることができます。
- WordPressは、プラグインのアンインストールがインストール全体を破壊しないことを確認していません。プラグインの作成者がアンインストール関数を設定してすべてを削除すると、それが行われます。
それで、これにより、プラグインの著者があなたの信頼を裏切り、あなたのサイトに悪意のあることをする場合、何ができるかという疑問が残ります。 WP-Contentディレクトリとデータベース全体の定期的なバックアップを使用することは、サイトに何かが起こった場合に回復できるようにするための最良の方法です(例:データ損失、ハック攻撃、悪いプラグインなど) 。
まっすぐな答え:いいえ
プラグインは、PHPコードでできることは何でもできます。