2010-04-22 10 views
6

क्या किसी विशेष फ़ंक्शन में कोड को लपेटना संभव है जो प्लगइन सक्रिय होने पर पहली बार निष्पादित हो जाता है?प्लगइन में कोड जोड़ना जो केवल सक्रिय होने पर पहली बार निष्पादित होता है?

मेरे पास कुछ डेटाबेस कोड है जो मुझे प्लगइन सक्रियण पर चलाने की आवश्यकता है, लेकिन इसके बाद कोड को फिर से चलाने की आवश्यकता नहीं है।

उत्तर

9

हां, यह संभव है। आप एक प्लगइन सक्रियण हुक पंजीकृत कर सकते हैं जो प्लगइन सक्रिय होने पर ही चलाया जाता है। मुझे लगता है मैं कुछ उदाहरण कोड के लिए लिखा था एक पुराने प्लगइन अप dredged:

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

धन्यवाद Zombat, और विशेष रूप से उदाहरण के लिए। एक प्रश्न: क्या एक काम कर रहे प्लगइन (कोड के साथ जो प्लगइन सक्रिय है तब तक निष्पादित किया जा सकता है) के साथ एक सक्रियण हुक भी संभव है? –

+0

मुझे यकीन नहीं है कि मैं पालन करता हूं। फ़ंक्शन के अंदर जो भी आप सक्रियण हुक के रूप में पंजीकृत करते हैं, तब भी चलाया जाएगा जब भी "सक्रिय प्लगइन" क्रिया WordPress व्यवस्थापक पैनल में होती है। आपके पास प्लगइन कक्षाओं के अंदर अन्य कोड का एक गुच्छा हो सकता है जो अन्य सामान करेगा, लेकिन सक्रियण हुक पर निर्भर नहीं है। यह सामान्य रूप से सामान्य रूप से इस्तेमाल किया जा सकता है। क्षमा करें अगर वह आपके प्रश्न का उत्तर नहीं देता है, तो मुझे समझ में नहीं आया कि आप क्या पूछ रहे हैं ...? – zombat

+0

मैंने इसे समझ लिया। मैं उलझन में था कि प्लगइन के लिए init कहां रखा जाए और सक्रियण हुक कहां रखा जाए। –

2

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

समारोह register_activation_hook (वर्डप्रेस 2.0 में प्रस्तुत) एक प्लगइन समारोह पंजीकृत करता चलाने के लिए जब प्लगइन सक्रिय है।

+0

धन्यवाद डोमिनिक। मैं मदद की सराहना करता हूं। –

1

भी याद एक बार अपने प्लगइन खुद के द्वारा निष्क्रिय किया जा रहा है/उपयोगकर्ता आप किसी भी तालिका विकल्प है कि आप WP डेटाबेस में संग्रहीत है हटा सकते हैं, मैंने लिखा एक यह हाल ही में 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"); 
    } 
    ?> 
संबंधित मुद्दे