如果wp_is_mobile()为真,则从仪表板重定向到edit.php

时间:2012-11-12 作者:INT

正在寻找将用户从仪表板直接重定向到edit.php 如果wp_is_mobile() 是真的。

这就是我所尝试的:

function redirect_if_mobile() {
    $screen = get_current_screen();
    if($screen->base == \'dashboard\') {
        if ( wp_is_mobile() ) {
            $url = admin_url( \'edit.php\' );
            wp_redirect( $url );
        }
    }
}
add_action( \'admin_menu\', \'redirect_if_mobile\');
问题是get_current_screen() 未在中定义admin_initadmin_menu (如果你钩住admin_head 相反,为时已晚,邮件头已经发送)。

想法?

3 个回复
最合适的回答,由SO网友:CookiesForDevo 整理而成

您正在查找的操作是auth\\u redirect,它位于页眉之前,但仍然可以识别$pagenow来判断您所在的页面:

add_action(\'auth_redirect\', \'the_mobile_boot\');
function the_mobile_boot() {
    global $pagenow;

    if ( $pagenow == \'index.php\' && wp_is_mobile() ) {
        header( \'Location: \' . get_admin_url(null, \'edit.php\') );
        exit;
    }

}

SO网友:Bryan Willis

实际上,您可以使用正在使用的函数,您只需要使用load-index.php (如果不需要全局变量,则无需全局变量):

add_action(\'load-index.php\', function(){
    if(get_current_screen()->base == \'dashboard\' && !wp_is_mobile())
        wp_redirect(admin_url(\'edit.php\'));
});

SO网友:INT

好吧,找到了一个解决方案,虽然不是那么优雅。

function load_if_mobile() {
    if ( wp_is_mobile() ) {?>
    <script>
        window.location = \'/wp-admin/edit.php\';
    </script><?php
    }
}
add_action(\'admin_head-index.php\', \'load_if_mobile\');

结束

相关推荐

将用户从Admin Break AJAX重定向

尝试对一些用户进行简单重定向,我不想访问wp admin/,因此我执行了以下代码:function no_admin_access() { if ( !current_user_can( \'delete_posts\' ) ) { wp_redirect( site_url( \'/\' ) ); exit; } } add_action(\'admin_init\', \'no_admin_access\'); 但是,当