2010-03-15 110 views
8

後如何將用戶重定向到我的插件設置頁面他們激活我的插件後,我試圖重定向插件激活

register_activation_hook(__FILE__,'activate_myplugin'); 
function activate_myplugin() 
{ 
//create and populate DB tables 
wp_redirect(plugin_setting_url); 
} 

,但它不工作。

+0

我在谷歌搜索,沒有得到任何東西...同樣的問題是在一些其他論壇,都沒有回答 – 2010-03-17 09:12:08

回答

13

你應該能夠做這樣的事情:

register_activation_hook(__FILE__, 'my_plugin_activate'); 
add_action('admin_init', 'my_plugin_redirect'); 

function my_plugin_activate() { 
    add_option('my_plugin_do_activation_redirect', true); 
} 

function my_plugin_redirect() { 
    if (get_option('my_plugin_do_activation_redirect', false)) { 
     delete_option('my_plugin_do_activation_redirect'); 
     wp_redirect(MY_PLUGIN_SETTINGS_URL); 
    } 
} 
+2

@理查德thanx ...正是我想要的...... 我喜歡這個社區.. – 2010-03-18 09:56:11

3

感謝您的代碼 - it's偉大的,但只有一個缺點:在插件的批量激活,你也可以得到重定向到您的定義重定向頁面 - 當出於測試/調試原因一次性停用/激活所有插件時可能會使用戶感到困惑。因此,我建議的解決方案,以增加選擇僅重定向到你的頁面上的第一個插件激活:

register_activation_hook(__FILE__, 'my_plugin_activate'); 
add_action('admin_init', 'my_plugin_redirect'); 

function my_plugin_activate() { 
add_option('myplugin_redirect_on_first_activation', 'true'); 
} 

function my_plugin_redirect() { 
    if (get_option(MYPLUGIN_REDIRECT_ON_FIRST_ACTIVATION_KEY) == 'true') { 
     update_option(MYPLUGIN_REDIRECT_ON_FIRST_ACTIVATION_KEY, 'false'); 
     wp_redirect(MY_PLUGIN_SETTINGS_URL); 
    } 
} 
+0

有效點,但會更好地檢測批量激活 – Pat 2012-05-21 16:35:10

8

只有當插件才能被激活,而無需使用批量激活模式,這將重定向到選項頁。

register_activation_hook(__FILE__, 'my_plugin_activate'); 
add_action('admin_init', 'my_plugin_redirect'); 

function my_plugin_activate() { 
    add_option('my_plugin_do_activation_redirect', true); 
} 

function my_plugin_redirect() { 
    if (get_option('my_plugin_do_activation_redirect', false)) { 
     delete_option('my_plugin_do_activation_redirect'); 
     if(!isset($_GET['activate-multi'])) 
     { 
      wp_redirect("options-general.php?page=your-plugin-option-page"); 
     } 
    } 
} 
0

你好,我已經使用波紋管代碼重定向插件激活後。您可以使用此代碼。它工作得很好。

register_activation_hook(__FILE__, 'nht_plugin_activate'); 
add_action('admin_init', 'nht_plugin_redirect'); 

function nht_plugin_activate() { 
add_option('nht_plugin_do_activation_redirect', true); 
} 

function nht_plugin_redirect() { 
if (get_option('nht_plugin_do_activation_redirect', false)) { 
    delete_option('nht_plugin_do_activation_redirect'); 
    if(!isset($_GET['activate-multi'])) 
    { 
     wp_redirect("edit.php?post_type=headline&page=news-headline"); 
    } 
} 
} 

nht_是我的插件前綴& 「edit.php?post_type =標題&頁=新聞標題」 是重定向的頁面。請替換這些。