2010-04-22 16 views

Odpowiedz

9

Tak, jest to możliwe. Możesz zarejestrować hak aktywacyjny wtyczki, który uruchamia się dopiero po aktywowaniu wtyczki. I pogłębiony starą wtyczkę napisałem na jakiś przykład kodu:

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 
    } 
} 
+0

Dzięki Zombat, a szczególnie na przykład. Jedno pytanie: czy możliwe jest posiadanie działającej wtyczki (z kodem, który działa tak długo, jak aktywowana jest wtyczka), która również ma hak aktywacyjny? –

+0

Nie jestem pewien, czy podążam. Cokolwiek w funkcji, którą rejestrujesz jako hak aktywacyjny, zostanie uruchomione, gdy w panelu administracyjnym wordpress pojawi się akcja "aktywuj wtyczkę". W klasach wtyczek możesz mieć kilka innych kodów, które będą robić inne rzeczy, ale nie polegać na hakach aktywacyjnych. Można go zwyczajnie używać. Przepraszam, jeśli to nie odpowiada na twoje pytanie, nie bardzo rozumiem o co prosisz ...? – zombat

+0

Rozgryzłem to. Nie wiedziałem, gdzie umieścić init dla wtyczki i gdzie umieścić hak aktywacyjny. –

1

pamiętam też kiedyś Twój plugin jest dezaktywowany przez siebie/użytkownik może usunąć wszelkie opcje tabel, które zostały zapisane w bazie danych wp napisałem mały post o tym ostatnio mówi o funkcji wp register_deactivation_hook() ..

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"); 
    } 
    ?> 
Powiązane problemy