wp_redirect funktioniert nicht auf der Admin-Menüseite

Ich versuche, einen Admin-Menü-Link auf dem Backend-Dashboard zu erstellen, der die Benutzer an das Front-End ihrer Site bringt. Ich versuche, diesen Code zu verwenden, aber aus irgendeinem Grund funktioniert die Umleitung nicht.

// Custom Menus add_action('admin_menu', 'register_web_menu_page'); function register_web_menu_page() { add_menu_page('View My Website', 'View My Website', 'add_users', 'web_menu_page', 'web_menu_page', '', null, 9); } function web_menu_page(){ wp_redirect( home_url() ); exit; } 

Der Benutzer klickt auf den Menü-Link und wechselt zur web_menu_page und wird nicht zur Home-URL weitergeleitet.

Ich bin nicht sicher, warum es nicht umleitet, irgendeine Hilfe?

Solutions Collecting From Web of "wp_redirect funktioniert nicht auf der Admin-Menüseite"

Problem ist, dass die function, die Sie verwenden, nach dem HTTP-Header gesendet wird, so dass sie nicht umgeleitet werden kann.

Du musst einen anderen Weg benutzen.

Eine Methode kann die globale menu abfangen und einen neuen Menüeintrag mit allen Eigenschaften hinzufügen:

 add_action( 'admin_menu', 'register_web_menu_page', 999); function register_web_menu_page () { global $menu; $menu[9] = array ( 'View My Website', // menu title 'add_users', // capability home_url(), // menu item url null, 'menu-top menu-icon-generic toplevel_page_web_menu_page', // menu item class 'View My Website', // page title false // menu function ); } 

Dies ist nicht standardmäßig möglich , weil Sie wissen, dass das Hinzufügen von add_menu_page function add_menu_page .

Wenn Sie nur Standardpraktiken verwenden möchten '__return_false' das Menü mit der function doing-nothing ein, genau wie '__return_false' , und verwenden Sie dann eine andere function, um zur Startseite umzuleiten, wenn $_GET['page'] = für Ihren Menü-Slug ist admin init (bevor die Header gesendet werden):

 add_action('admin_menu', 'register_web_menu_page'); function register_web_menu_page() { add_menu_page('View My Website', 'View My Website', 'add_users', 'web_menu_page', '__return_false', null, 9); } add_action('admin_init', 'redirect_to_site', 1); function redirect_to_site() { if ( isset($_GET['page']) && $_GET['page'] == 'web_menu_page' ) { wp_redirect( home_url() ); exit(); } } 

Sie können load-(page) ( Referenz )

Aus Ihrem Quellcode.

 add_action('admin_menu', 'register_web_menu_page'); function register_web_menu_page() { $hook = add_menu_page('View My Website', 'View My Website', 'add_users', 'web_menu_page', 'web_menu_page', '', null, 9); add_action('load-' . $hook, 'redirectNiceUrl'); } function redirectNiceUrl() { wp_redirect(home_url()); }