管理员页面重定向


18

如果用户访问另一个管理页面,是否可以将用户重定向到管理页面?

例如,如果用户曾经点击“所有页面” /wp-admin/edit.php?post_type=page

他们将被重定向到“添加新页面” /wp-admin/post-new.php?post_type=page

Answers:


24
/**
 * Redirect admin pages.
 *
 * Redirect specific admin page to another specific admin page.
 *
 * @return void
 * @author Michael Ecklund
 *
 */
function disallowed_admin_pages() {

    global $pagenow;

    # Check current admin page.
    if ( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == 'page' ) {

        wp_redirect( admin_url( '/post-new.php?post_type=page' ) );
        exit;

    }

}

将以上功能启动到钩子上admin_init

add_action( 'admin_init', 'disallowed_admin_pages' );

备用语法:

/**
 * Redirect admin pages.
 *
 * Redirect specific admin page to another specific admin page.
 *
 * @return void
 * @author Michael Ecklund
 *
 */
add_action( 'admin_init', function () {

    global $pagenow;

    # Check current admin page.
    if ( $pagenow == 'edit.php' && isset( $_GET['post_type'] ) && $_GET['post_type'] == 'page' ) {

        wp_redirect( admin_url( '/post-new.php?post_type=page' ) );
        exit;

    }

} );

3

Michael的解决方案似乎打算在一个类中使用,因此,对于任何想要直接在functions.php中直接使用的独立函数的人,下面的示例包括从custom.php到主题选项页的重定向以及从Michael的原始函数的重定向。 。

function admin_redirects() {
    global $pagenow;

    /* Redirect Customizer to Theme options */
    if($pagenow == 'customize.php'){
        wp_redirect(admin_url('/admin.php?page=theme_options', 'http'), 301);
        exit;
    }

    /* OP's redirect from /wp-admin/edit.php?post_type=page */
    if($pagenow == 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] == 'page'){
        wp_redirect(admin_url('/post-new.php?post_type=page', 'http'), 301);
        exit;
    }
}

add_action('admin_init', 'admin_redirects');

0

是的,可以通过向中添加操作来实现admin_init这一点,届时您可以检查请求uri以查看它是否匹配/wp-admin/edit.php?post_type=page以及是否确实将重定向发送到添加帖子页面:/wp-admin/post-new.php?post_type=page

WordPress Codex上的Plugin API操作参考页面也提供了有关操作及其工作方式的更多详细信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.