こんにちは私はプラグインを開発していると一点で立ち往生しました。私は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';
}
何がおかしいのですか?助けてください。ありがとう
The Codex からのこの引用は、この関数が何をするのか明確に述べています。
register_activation_hook
関数は、プラグインがアクティブになったときに実行されるプラグイン関数を登録します。
つまり、この関数はクラスの__construct()
メソッドと同じように機能します。初期オプションの設定、データベースの更新などに使用できます。コアが読み込まれるたびに実行されるのではなく、プラグインリストのプラグインのActivate
ボタンをクリックしたときにのみ実行されます。