Code zum Plugin hinzufügen, der nur bei der ersten Aktivierung ausgeführt wird?

Lesezeit: 2 Minuten

Ist es möglich, Code in eine spezielle Funktion zu verpacken, die nur ausgeführt wird, wenn das Plugin zum ersten Mal aktiviert wird?

Ich habe einen Datenbankcode, den ich bei der Plugin-Aktivierung ausführen muss, aber der Code muss danach nicht erneut ausgeführt werden.

Ja, das ist möglich. Sie können einen Plugin-Aktivierungs-Hook registrieren, der nur ausgeführt wird, wenn das Plugin aktiviert wird. Ich habe ein altes Plugin ausgegraben, das ich für einen Beispielcode geschrieben habe:

class MyPlugin
{
    //constructor for MyPlugin object
    function MyPlugin() {
        register_activation_hook(__FILE__,array(&$this, 'activate'));
    }

    function activate()
    {
        //initialize some stored plugin stuff
        if (get_option('myplugin_data_1') == '') {
            update_option('myplugin_data_1',array());
        }
        update_option('myplugin_activated',time());
        //etc
     }
}

  • Danke Zombat, und vor allem für das Beispiel. Eine Frage: Ist es möglich, ein funktionierendes Plugin zu haben (mit Code, der ausgeführt wird, solange das Plugin aktiviert ist), das auch einen Aktivierungs-Hook hat?

    – Scott B

    22. April 2010 um 20:07 Uhr

  • Ich bin mir nicht ganz sicher, ob ich folgen kann. Alles innerhalb der Funktion, die Sie als Aktivierungs-Hook registrieren, wird ausgeführt, wenn die Aktion „Plugin aktivieren“ im WordPress-Admin-Panel auftritt. Sie können eine Menge anderen Codes in den Plugin-Klassen haben, die andere Dinge tun, sich aber nicht auf Aktivierungs-Hooks verlassen. Es kann nur ganz normal verwendet werden. Tut mir leid, wenn das deine Frage nicht beantwortet, ich habe nicht ganz verstanden, was du fragst …?

    – Zombie

    22. April 2010 um 20:13 Uhr

  • Ich habe es herausgefunden. Ich war verwirrt darüber, wo ich die Init für das Plugin und wo ich den Aktivierungshaken platzieren sollte.

    – Scott B

    22. April 2010 um 20:25 Uhr

http://codex.wordpress.org/Function_Reference/register_activation_hook

Die Funktion register_activation_hook (eingeführt in WordPress 2.0) registriert eine Plugin-Funktion, die ausgeführt werden soll, wenn das Plugin aktiviert wird.

  • Danke Dominik. Ich schätze die Hilfe.

    – Scott B

    22. April 2010 um 20:07 Uhr

Denken Sie auch daran, dass Sie, sobald Ihr Plugin von Ihnen selbst/Benutzer deaktiviert wurde, alle Tabellenoptionen entfernen können, die Sie in der wp-Datenbank gespeichert haben. Ich habe kürzlich einen kleinen Beitrag darüber geschrieben und über die Funktion wp register_deactivation_hook() gesprochen.

http://www.martin-gardner.co.uk/how-to-get-your-wordpress-plugin-to-drop-table-from-the-database/

    <?php
    register_deactivation_hook( __FILE__, ‘pluginUninstall’ );

    function pluginUninstall() {
      global $wpdb;
      $thetable = $wpdb->prefix."your_table_name";
      //Delete any options that's stored also?
      //delete_option('wp_yourplugin_version');
      $wpdb->query("DROP TABLE IF EXISTS $thetable");
    }
    ?>

1394310cookie-checkCode zum Plugin hinzufügen, der nur bei der ersten Aktivierung ausgeführt wird?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy