如何在激活插件后将用户重定向到我的插件设置页面,我试过
register_activation_hook(__FILE__,'activate_myplugin');
function activate_myplugin()
{
//create and populate DB tables
wp_redirect(plugin_setting_url);
}
但它不起作用。
答案 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
就我而言,这是我要重定向页面的页面路径。