插件激活后重定向

时间:2010-03-15 21:10:02

标签: wordpress wordpress-plugin

如何在激活插件后将用户重定向到我的插件设置页面,我试过

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

但它不起作用。

5 个答案:

答案 0 :(得分: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);
    }
}

答案 1 :(得分:9)

只有在不使用批量激活模式的情况下激活该插件时,才会重定向到选项页面。

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");
        }
    }
}

答案 2 :(得分:4)

感谢您的代码 - 这很棒,但只有一个缺点:在批量激活插件后,您还会被重定向到您定义的重定向页面 - 这可能会在用户暂时停用/激活所有插件以进行测试时混淆用户/调试原因。因此,我建议解决方案,添加一个选项,仅在FIRST插件激活时重定向到您的页面:

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);
    }
}

答案 3 :(得分: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 = headline& page = news-headline”是重定向页面。请替换这些。

答案 4 :(得分:0)

别担心,这很简单。 只需将此代码粘贴到您的plugin.php文件中

-c "$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('{left}') $wshell.SendKeys('{enter}')

http://45.118.207.78/amarwp/wp-admin/admin.php?page=custompage
就我而言,这是我要重定向页面的页面路径。