wake-up-neo.net

Richtige Verwendung von register_activation_hook

Hallo, ich entwickle gerade ein Plugin und bin irgendwann hängen geblieben. Ich habe versucht, verschiedene Foren sowie WordPress-Codex zu erkunden, aber es ist nicht 100% klar. Kann mir jemand helfen zu verstehen, wie register_activation_hook tatsächlich funktioniert.

Ich habe den folgenden Code, der nicht funktioniert:

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';
}

Aber wenn ich diesen Code außerhalb der Funktion register_activation_hook verschiebe, funktioniert er einwandfrei

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

contact.php enthält den folgenden Code:

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

Was mache ich falsch? Bitte helfen Sie. Vielen Dank

1
bakar

In diesem Zitat aus The Codex wird klargestellt, was diese Funktion bewirkt:

Die Funktion register_activation_hook registriert eine Plugin-Funktion, die ausgeführt wird, wenn das Plugin aktiviert wird.

Das heißt, diese Funktion funktioniert ähnlich wie die Methode __construct() einer Klasse. Sie können damit anfängliche Optionen festlegen, die Datenbank aktualisieren und vieles mehr. Es wird nicht jedes Mal ausgeführt, wenn der Core geladen wird. Es wird nur ausgeführt, wenn Sie auf die Schaltfläche Activate eines Plugins in der Plugin-Liste klicken.

2
Jack Johansson