Suche nach einer Möglichkeit, den Benutzer direkt aus dem Dashboard in die edit.php
wenn wp_is_mobile()
wahr ist.
Das habe ich ausprobiert:
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');
Das Problem ist, dass get_current_screen()
weder in admin_init
noch in admin_menu
(wenn Sie stattdessen admin_head
verwenden, ist es zu spät und Header wurden bereits gesendet).
Ideen?
Die Aktion, nach der Sie suchen, ist auth_redirect, die vor den Headern steht, aber $ pagenow erkennt, um zu ermitteln, auf welcher Seite Sie sich befinden:
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; } }
Sie können tatsächlich die function verwenden, die Sie verwenden, Sie müssen nur load-index.php
(keine Notwendigkeit für Globals, wenn Sie sie nicht brauchen):
add_action('load-index.php', function(){ if(get_current_screen()->base == 'dashboard' && !wp_is_mobile()) wp_redirect(admin_url('edit.php')); });
Okay, fand eine Lösung, wenn auch nicht so elegant.
function load_if_mobile() { if ( wp_is_mobile() ) {?> < ?php } } add_action('admin_head-index.php', 'load_if_mobile');