Añadir enlace "externo" al menú de administración en el backend

30 ene 2011, 23:50:32
Vistas: 16.1K
Votos: 7

Intentando añadir un enlace a mi menú de administración (panel de control/backend) que lleve al frontend de WordPress, básicamente quiero un enlace en el menú que me lleve al blog.

He encontrado varias formas de añadir nuevos elementos al menú de administración, pero no he podido enlazar a home_url, parece que el menú de administración solo está diseñado para permitir enlaces dentro de wp-admin. ¿Alguien lo ha conseguido?

Edición:
Probé con esto: https://gist.github.com/792b7aa5b695d1092520

add_admin_menu_item('Overview',array( 
      'title' => 'Ver Sitio',
      'slug' => get_bloginfo('url')
  ));

Lo que me da el enlace hxxp://myurl.com/myurl.com
Con este plugin (hxxp://wordpress.org/extend/plugins/admin-menu-editor/), obtengo:
hxxp://myurl.com/wp-admin/www.test.com

2
Comentarios

posible duplicado de ¿Cómo agregar un enlace arbitrario al menú de administración?

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

Ya que esto todavía aparece en los primeros resultados de búsqueda, y después de muchas horas de buscar, aquí hay una forma de hacerlo sin una redirección. http://www.techedg.com/2014/09/06/5575/a-simple-way-to-add-an-external-link-to-the-wordpress-admin-menu/

User User
6 sept 2014 19:34:19
Todas las respuestas a la pregunta 5
3

Puedes crear una función que redirija al front-end de esta manera:

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

y llamar esa función en la función add_menu_page por defecto de WordPress así:

add_menu_page( 'redireccionando', 'Ver Sitio', 'read', 'my-top-level-handle', 'redirect_home_987');

Espero que esto ayude

31 ene 2011 09:43:28
Comentarios

No estoy seguro de entenderte correctamente. He agregado esto a mi functions.php ahora:

add_action('admin_menu', 'add_viewsite');

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

// Llama a esta función para un enlace "home" function redirect_home_987(){ wp_redirect( home_url() ); exit; }

Lo cual me da un enlace que se ve así: http://www.url.com/wp-admin/admin.php?page=my-top-level-handle

INT INT
31 ene 2011 16:15:23

Tuve el mismo problema - algunos de los headers ya habían sido enviados. Probé algunas opciones; la única que pareció funcionar (con la que no estoy completamente satisfecho) es combinar lo anterior con javascript, como esta respuesta

Hobo Hobo
7 jul 2013 21:59:54

Mostrará un error de "headers already sent".

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

El nombre del sitio (arriba a la izquierda, junto al logo de WP) enlaza al front-end, ¿no es eso suficiente?

También ayudaría si incluyeras el código que hayas probado hasta ahora en la pregunta.

31 ene 2011 00:07:41
Comentarios

Gracias por tu respuesta. Eliminé el nombre del sitio, ya que rompía el diseño de mi backend personalizado, así que necesito implementar un enlace al frontend en el menú en su lugar.

INT INT
31 ene 2011 01:16:30
2

No puedes agregar elementos a los menús de administración que apunten a URLs externas, las funciones de adición de menú no admiten esto, ni lo permitirán.

Sin embargo, si adjuntas una función de retorno (callback) al hook admin_menu, puedes insertar algunos elementos manualmente y superar completamente el problema de las URLs externas. Yo mismo hago esto y me sorprende que nadie haya señalado ya el problema con los enlaces externos en el menú.

Proporcioné un ejemplo al responder ¿Cómo agregar un enlace arbitrario al menú de administración?

Házme saber si eso ayuda.

1 feb 2011 12:52:38
Comentarios

De hecho, esta pregunta parece ser un duplicado exacto de esta otra. ¡Así que tiene mi voto para cerrarla!

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

@Jan Fabry - Estaba pensando eso cuando enlacé a la otra pregunta, así que también he votado para cerrar como duplicado (el usuario también debería tener ahora la respuesta que busca, así que cerrar no debe considerarse algo malo).

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

/**
* Añade un enlace externo al área de Herramientas
*/
function example_admin_menu() {
    global $submenu;
    $url = 'http://www.example.com/';
    $submenu['tools.php'][] = array('Ejemplo', 'manage_options', $url);
}
5 may 2020 15:11:44
1
-1

simplemente agrega ../ como prefijo en el slug:

add_admin_menu_item('Resumen',array( 
  'title' => 'Ver Sitio',
  'slug' => '../slug'          // URL relativa
));
20 oct 2017 14:32:25
Comentarios

Por favor, [edita] tu respuesta y agrega una explicación: ¿por qué eso podría resolver el problema?

fuxia fuxia
20 oct 2017 15:30:27