जवाबों:
ऐसा मैंने कुछ वेब ऐप्स में किया है:
function run_activate_plugin( $plugin ) {
$current = get_option( 'active_plugins' );
$plugin = plugin_basename( trim( $plugin ) );
if ( !in_array( $plugin, $current ) ) {
$current[] = $plugin;
sort( $current );
do_action( 'activate_plugin', trim( $plugin ) );
update_option( 'active_plugins', $current );
do_action( 'activate_' . trim( $plugin ) );
do_action( 'activated_plugin', trim( $plugin) );
}
return null;
}
run_activate_plugin( 'akismet/akismet.php' );
activate_plugin()
, और यह समान काम करता है।
प्लगइन सक्रियण प्रक्रिया को WP व्यवस्थापक इंटरफ़ेस के साथ काम करने के लिए कोडित किया गया है। यह त्रुटियों के साथ प्लगइन्स को सक्षम करने से रोकने के लिए कुछ चेक करता है (लोडिंग शुरू में WP टूट सकता है)।
इसे activate_plugin()
फ़ंक्शन ( स्रोत ) द्वारा नियंत्रित किया जाता है जिसे अन्यत्र अनुपयोगी के रूप में प्रलेखित किया जाता है।
तो अगर आप प्लगइन को सक्रिय करना चाहते हैं तो कोड खुद ही अपेक्षाकृत आसान है - active_plugins
उस प्लगइन को शामिल करने के लिए विकल्प बदलना । लेकिन आपको स्क्रैच से संबंधित सक्रियण हुक को फिर से बनाना होगा और सैंडबॉक्स स्टेप के बिना सक्रिय करके ब्रेकिंग साइट को जोखिम में डालना होगा।
प्लगइन्स को 'active_plugins' विकल्प में एक सरणी में संग्रहीत किया जाता है। सरणी में सक्रिय प्रत्येक प्लगइन के लिए फ़ाइल पथ है।
एक प्लगइन को सक्रिय करने के लिए आपको यह निर्धारित करने की आवश्यकता है कि यह पथ क्या होगा, फिर उस पथ को पास करें activate_plugin($plugin_path)
।
यह हालांकि कहा गया आसान है, और (कम से कम 2.9 में) कोर कोड इसे आसान नहीं बनाता है।
इससे पहले कि आप सक्रिय करें_प्लगइन () आपको wp-admin / plugin / से plugin.php फ़ाइल को शामिल करने की आवश्यकता है / शामिल हैं। आपको यह सुनिश्चित करने के लिए भी जांचना चाहिए कि आपका प्लगइन पहले से सक्रिय नहीं है। परिणाम कुछ इस प्रकार है (YMMV):
// Define the new plugin you want to activate
$plugin_path = '/path/to/your/new/plugin.php';
// Get already-active plugins
$active_plugins = get_option('active_plugins');
// Make sure your plugin isn't active
if (isset($active_plugins[$plugin_path]))
return;
// Include the plugin.php file so you have access to the activate_plugin() function
require_once(ABSPATH .'/wp-admin/includes/plugin.php');
// Activate your plugin
activate_plugin($plugin_path);
मैं WP 2.9 में उत्पादन पर इसका उपयोग करता हूं और इसका कोई बड़ा मुद्दा नहीं है, लेकिन मेरे परीक्षण में WPMU के साथ बहुत अप्रत्याशित परिणाम थे, इसलिए नेटवर्क इंस्टॉल पर इसका उपयोग करने से सावधान रहें।
WP Codex के अनुसार Wordpress plugins को सक्रिय करने के लिए एक फ़ंक्शन प्रदान करता है
function plugin_activation( $plugin ) {
if( ! function_exists('activate_plugin') ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
if( ! is_plugin_active( $plugin ) ) {
activate_plugin( $plugin );
}
}
plugin_activation('akismet/akismet.php');
आप बस वर्डप्रेस डिफ़ॉल्ट फ़ंक्शन को कॉल कर सकते हैं।
activate_plugin('akismet/akismet.php');
अधिक विस्तार के लिए नीचे दिए गए लिंक की जाँच करें।