将Plugins.php重定向到新插件页面

时间:2016-06-19 作者:Marc Woodyard

我有一个多站点安装,需要将默认插件页面重定向到另一个将处理插件的管理页面。例如,如果他们要求/wp-admin/plugins.php, 然后应该将它们重定向到/wp-admin/admin.php?page=pretty-plugins.php 如果他们不是网络管理员。下面的代码是我到目前为止想出的,但我需要帮助完成它。如有任何帮助和建议,将不胜感激。

function block_direct_plugin_page_access() {
    if ( ! current_user_can( \'update_core\') && ) //And requests plugins.php
    {
        //Redirect to new plugin page because they are not a network admin.
        wp_safe_redirect( \'[Insert Link Here]\', 301 ); 
        exit;
    }
}

add_action("muplugins_loaded", "block_direct_plugin_page_access");

1 个回复
最合适的回答,由SO网友:Marc Woodyard 整理而成

经过一点尝试和错误,我终于让我的代码开始工作了。这将重定向http://example.com/wp-admin/pluginshttp://example.com/wp-admin/admin.php?page=pretty-plugins.php 如果当前用户没有更新core的权限。

add_action( \'admin_menu\', \'block_direct_plugin_page_access\' );  
function block_direct_plugin_page_access() {
    global $pagenow;
    if ( ! current_user_can(\'update_core\') && \'plugins.php\' === $pagenow ) {
        if ( function_exists(\'admin_url\') ) {
            wp_redirect( admin_url(\'admin.php?page=pretty-plugins.php\') );
        } else {
            wp_redirect( get_option(\'siteurl\') . \'/wp-admin/\' . \'admin.php?page=pretty-plugins.php\' );
        }
    }
}