web-dev-qa-db-ja.com

プラグインをインストールすると、いつもWordPressが元の状態に戻りますか?

WordPressのデプロイされたインスタンス内のプラグインの有効期間は何ですか?

すなわち:

  • プラグインは既存のファイルを変更しますか、それともWordPress内で定義された拡張ポイントのみを使用しますか?
  • プラグインはデータベーススキーマを変更することを許可されていますか(例えば、新しい列を追加する)?
  • wordpressは、プラグインのアンインストールが常にWPを元の状態のままにすることをどのように確認しますか? (それ?)
4
Marek

短い答え:

  • プラグインは既存のファイルを変更するのではなく、公開された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 ) )を呼び出します。プラグインが非アクティブ化されたときに特定のことが発生する必要がある場合、プラグインはこのアクションにフックする必要があります。私の経験では、いくつかのプラグインが非アクティブ化のクリーンアップを多く行う、すなわち。再度アクティブになった場合に備えて、設定を冷蔵保管してください。

15

WordPressのプラグインは、コードの内容を実行します。あなたの質問に具体的に答えるためには、

  1. そうするべきではありませんが、コアファイルの変更を阻止するものは何もありません。
  2. 彼らはWordPress自身ができるような方法でデータベースと完全にインターフェースすることが許されています。
  3. WordPressは、プラグインのアンインストールがインストール全体を破壊しないことを確認しません。プラグインの作成者がすべて削除するようにアンインストール機能を設定した場合、それはそれをするでしょう。

それで、これは問題を残します、プラグイン作者があなたの信頼を裏切り、あなたのサイトに悪意のある何かをしたらどうすることができますか?あなたのwp-contentディレクトリとデータベース全体の定期的なバックアップをとることはあなたのサイトに何かが起こった場合にあなたが回復することができるであろうことを確実にする最も良い方法です(例えばデータ損失、ハック攻撃、悪いプラグインなど) 。

3
John P Bloch

正解:NO

プラグインはPHP codeでできることなら何でもできます。

1
User