Aggiungere un link "esterno" al menu di amministrazione nel backend

30 gen 2011, 23:50:32
Visualizzazioni: 16.1K
Voti: 7

Sto cercando di aggiungere un link al mio menu di amministrazione (dashboard/backend) che porti al frontend di WordPress, in pratica voglio un link nel menu che mi porti al blog.

Ho trovato alcuni modi per aggiungere nuovi elementi al menu di amministrazione, ma non sono riuscito a collegarmi alla home_url, sembra che il menu admin sia progettato solo per linkare elementi all'interno di wp-admin. Qualcuno ci è riuscito?

Modifica:
Ho provato con questo: https://gist.github.com/792b7aa5b695d1092520

add_admin_menu_item('Panoramica',array( 
      'title' => 'Visualizza sito',
      'slug' => get_bloginfo('url')
  ));

Che mi restituisce il link hxxp://myurl.com/myurl.com
Con questo plugin (hxxp://wordpress.org/extend/plugins/admin-menu-editor/), ottengo:
hxxp://myurl.com/wp-admin/www.test.com

2
Commenti

possibile duplicato di Aggiungere un link arbitrario al menu di amministrazione?

Jan Fabry Jan Fabry
1 feb 2011 13:11:23

Poiché questo risulta ancora tra i primi risultati di ricerca, e dopo molte ore di ricerca, ecco un modo per farlo senza un reindirizzamento. http://www.techedg.com/2014/09/06/5575/a-simple-way-to-add-an-external-link-to-the-wordpress-admin-menu/

User User
6 set 2014 19:34:19
Tutte le risposte alla domanda 5
3

puoi creare una funzione che reindirizza al front-end in questo modo:

function redirect_home_987(){
  wp_redirect( home_url() ); 
  exit;
}

e chiamare quella funzione nella funzione predefinita di WordPress add_menu_page in questo modo:

add_menu_page( 'redirecting', 'Visualizza Sito', 'read', 'my-top-level-handle', 'redirect_home_987');

Spero sia utile

31 gen 2011 09:43:28
Commenti

Non sono sicuro di averti capito correttamente. Ho aggiunto questo al mio functions.php ora:

add_action('admin_menu', 'add_viewsite');

function add_viewsite() { add_menu_page( 'redirecting', 'View Site', 'read', 'my-top-level-handle', 'redirect_home_987'); }

// Chiama questa funzione per un link alla "home" function redirect_home_987(){ wp_redirect( home_url() ); exit; }

Che mi dà un link che appare così: http://www.url.com/wp-admin/admin.php?page=my-top-level-handle

INT INT
31 gen 2011 16:15:23

Avevo lo stesso problema - alcuni degli header erano già stati inviati. Ho provato alcune opzioni; l'unica che sembra funzionare (e con cui non sono pienamente soddisfatto) è combinare il codice sopra con javascript, come in questa risposta

Hobo Hobo
7 lug 2013 21:59:54

Genererà un errore "headers already sent".

Joel James Joel James
22 ago 2019 12:10:30
1

Il nome del sito (in alto a sinistra, accanto al logo WP) collega al front-end, non è sufficiente?

Sarebbe utile se includessi nel messaggio il codice che hai provato finora.

31 gen 2011 00:07:41
Commenti

Grazie per la tua risposta. Ho rimosso il nome del sito, poiché rompeva il layout del mio backend personalizzato, quindi ho bisogno di implementare un link al front end nel menu.

INT INT
31 gen 2011 01:16:30
2

Non è possibile aggiungere elementi ai menu di amministrazione che puntano a URL esterni, le funzioni di aggiunta menu non supportano questa funzionalità, né la permetteranno.

Tuttavia, se colleghi una callback all'hook admin_menu, puoi inserire manualmente alcuni elementi e superare completamente il problema degli URL esterni. Io stesso utilizzo questo metodo e sono abbastanza sorpreso che nessuno abbia già evidenziato il problema con i link esterni nei menu.

Ho fornito un esempio rispondendo a Aggiungere un link arbitrario al menu di amministrazione?

Fammi sapere se questo ti aiuta.

1 feb 2011 12:52:38
Commenti

In effetti, questa domanda sembra essere un duplicato esatto di questa. Quindi ho votato per chiuderla!

Jan Fabry Jan Fabry
1 feb 2011 13:12:50

@Jan Fabry - Ci stavo pensando quando ho collegato all'altra domanda, quindi ho anche votato per chiuderla come duplicato (l'utente dovrebbe ora avere anche la risposta che sta cercando, quindi chiudere non dovrebbe essere considerato una cosa negativa).

t31os t31os
1 feb 2011 13:16:56
0
add_action('admin_menu', 'example_admin_menu');

/**
* Aggiunge un link esterno all'area Strumenti
*/
function example_admin_menu() {
    global $submenu;
    $url = 'http://www.example.com/';
    $submenu['tools.php'][] = array('Esempio', 'manage_options', $url);
}
5 mag 2020 15:11:44
1
-1

aggiungi semplicemente ../ come prefisso dello slug:

add_admin_menu_item('Overview',array( 
  'title' => 'View Site',
  'slug' => '../slug'          // URL relativo
));
20 ott 2017 14:32:25
Commenti

Per favore [modifica] la tua risposta e aggiungi una spiegazione: perché questa soluzione potrebbe risolvere il problema?

fuxia fuxia
20 ott 2017 15:30:27