Esta es la segunda entrada de cómo personalizar la administración de nuestro WordPress, si te perdiste la anterior entrada, la tienes aquí

Ahora vamos a ver algunos trucos para personalizar el panel de control y simplificarlo para ponerselo fácil a nuestro cliente.

Todo el código que veremos a continuación hay que añadirlo a nuestro functions.php, si queremos dejarlo más limpio, podemos ponerlo todo en un archivo «custom-admin.php» y hacer un require_once(«custom-admin.php»); en su lugar.

Añadir un CSS propio

//Cargamos estilos CSS propios
function custom_admin() {
echo '';
}
add_action( 'admin_head', 'custom_admin' );

Con esto cargamos una hoja de estilos dentro de la carpeta «custom-admin» de nuestra theme. Ahora podemos cambiar los estilos a nuestro gusto, recomiendo el uso de Firebug o el inspector de elementos propio de cada navegador para ver como están definidos los estilos por defecto.

Cambiar el texto del pie

Por defecto el pie de nuestro panel de control muestra un «Gracias por crear con WordPress«. Es un sitio ideal para poner algo más personal como quien ha realizado la página, nuestra firma, con esta función podemos modificar el pie a nuestro gusto.

function modify_footer_admin () {
  echo 'Creado por <a href="http://www.polsola.com">Pol Solà</a>. ';
  echo 'Funcionando sobre <a href="http://WordPress.org">WordPress</a>.';
}
add_filter('admin_footer_text', 'modify_footer_admin');

Desactivar widgets del Dashboard

WordPress incluye muchos widgets en su escritorio muy interesantes para gestionar una página orientada al estilo blog, pero quizás nos interesa quitar unos cuantos para dejar el escritorio más limpio y más tarde añadir un widget personalizado.

function custom_dashboard_widgets() {
	global $wp_meta_boxes;
	// Utiliza esta función si quieres remover algun widget del que no sabes la ID
	// var_dump( $wp_meta_boxes['dashboard'] );
        //Si quieres mantener alguno de estos widgets simplemente borra su "unset"
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
}
add_action('wp_dashboard_setup', 'custom_dashboard_widgets');

Desactivar opciones del menú

En más de una ocasión nos encontraremos con que nuestro cliente no va a utilizar algunas de las opciones que WordPress incluye (mayoritariamente Links o Comentarios) así que mejor directamente los hacemos desaparecer.

function custom_admin_menu()
{
	global $menu;
	//var_dump($menu); // Utiliza esto para saber la id de los menús que queremos desactivar
	unset( $menu[15] ); // Desactivamos links
	unset( $menu[25] );// Desactivamos comentarios
}

add_action( 'admin_menu', 'custom_admin_menu' );

Incluso podemos borrar la opción de las entradas si nuestro cliente no las va a utilizar.

Cambiar el nombre de «Entradas»

Ya para acabar, parece una tonteria, pero para una web corporativa es interesante que la opción de Menú «Entradas» muestre mejor «Notícias«, este código nos ayudará a conseguirlo.

add_filter( 'gettext', 'change_post_to_news' );
add_filter( 'ngettext', 'change_post_to_news' );

function change_post_news( $translated )
{
	$translated = str_replace( 'Entradas', 'Notícias', $translated );
	$translated = str_replace( 'entradas', 'notícias', $translated );
	return $translated;
}

Y de momento esto es todo, que no es poco 🙂

6 comentarios en “Personalizar administración WordPress: Panel de control

  1. elvis

    6 septiembre 2012 el 19:37

    no me funcionó el código para cambiar el nombre de «entradas».
    Hay que pegarlo en el archivo functions.php del theme?
    Porque me desaparecen todos los nombres del dashboard…
    Saludos

  2. elvis

    3 enero 2013 el 14:11

    Hola POL,
    como no me llegó ninguna notificación de respuesta recién veo tu comentario.
    Gracias por responder!
    Logré cambiar el nombre de los menu/submenú…
    El problema es que cuando haces click te lleva a la página de edición y el nombre no cambia.
    Ej: Cambié entradas por historial, pero cuando ingreso a Historial me leva a la clásica pantalla de «Entradas».
    Logré cambiar también lo de «Ingresar Título» pero no logro cambiar ENTRADAS ni tampoco CATEGORIAS donde es muy importante para mi que diga PROPIETARIOS.
    Alguna idea???
    Gracias de antemano!

    • Pol

      3 enero 2013 el 19:21

      Elvis, mi recomendación es que hagas un custom post personalizado y lo llames «Historial», después si no te interesa que se vean las entradas puedes desactivarlas del menú de administración. También puedes crear una taxonomía personalizada «Propietarios» para este tipo de post.

      Te será mucho más fácil que cambiar las entradas por defecto de WordPress, ya lo verás

      Hice un tutorial de como hacer esto pero con el ejemplo de un portafolio, puedes adaptarlo fácilmente 🙂

      ¡Un saludo y ánimo!

  3. Bernat

    23 noviembre 2016 el 10:41

    Hola,
    creo que la función «Desactivar opciones del menú» es realmente interesante pero sólo en el caso de poder asignarlo a un usuario concreto, así, el cliente sólo vería las opciones que le interesan, y yo como Superadmin tendría acceso a todo.
    Esto es posible?
    Gracias!!!

    • Pol

      23 noviembre 2016 el 10:51

      Hola Bernat,
      Lo más rápido seria poner un condicional dentro de la función, por ejemplo:

      if( !current_user_can(‘administrator’) ) {
      unset( $menu[15] ); // Desactivamos links
      unset( $menu[25] );// Desactivamos comentarios
      }

      Con esto desactivas las opciones de menú para cualquier usuario que no sea administrador

      Si quisieras algo más avanzado te recomiendo instalar un plugin para la gestión de roles con el que puedes crear roles nuevos y añadir/editar «capabilities» 🙂

      Un saludo!

Deja un comentario