web-dev-qa-db-ja.com

Register_activation_hookの正しい使い方

こんにちは私はプラグインを開発していると一点で立ち往生しました。私はWordPressコーデックスと同様に異なるフォーラムを探索しようとしました、しかしそれは100%明確ではありません。 register_activation_hookが実際にどのように機能するのかを誰かが私に理解させるのを助けることができます。

私は働かない以下のコードを持っています:

register_activation_hook(__FILE__, 'plugin_activation_fn'  );
      function plugin_activation_fn(){
      define('PLUGIN_DIR', plugin_dir_path( __FILE__ ));
      require_once PLUGIN_DIR . 'includes/contact.php';
}

しかし、私がそのコードをregister_activation_hook関数の外側に移動させるならば、それはうまく働きます

define('PLUGIN_DIR', plugin_dir_path( __FILE__ ));
require_once PLUGIN_DIR . 'options.php';
require_once PLUGIN_DIR . 'includes/contactone.php';

contact.phpには以下のコードが含まれています。

if (!empty($_GET['email']) && !empty($_GET['token'])) {
    add_action('init', 'my_test_fn', 0);
}
function my_test_fn(){
    echo'test';
}

何がおかしいのですか?助けてください。ありがとう

1
bakar

The Codex からのこの引用は、この関数が何をするのか明確に述べています。

register_activation_hook関数は、プラグインがアクティブになったときに実行されるプラグイン関数を登録します。

つまり、この関数はクラスの__construct()メソッドと同じように機能します。初期オプションの設定、データベースの更新などに使用できます。コアが読み込まれるたびに実行されるのではなく、プラグインリストのプラグインのActivateボタンをクリックしたときにのみ実行されます。

2
Jack Johansson