Personaliza el área de administración de WordPress

Hay ocasiones en las que necesitamos variar el área de administración de WordPress para hacerlo más amigable, o para incluir (o excluir) funcionalidades con vistas a su uso por un cliente o una tercera persona.

Vamos a ver una serie de funciones que nos permitirán precisamente eso: adaptar un poco el gestor de WordPress. Vamos a verlas una a una.

Cambia el logo de la pantalla de login

En la pantalla de login del gestor sale el logo de WordPress encima del formulario. Podemos poner el logo que queramos en su lugar. Para ello añadimos esta función en el archivo functions.php de nuestro tema:

La imagen (en este caso logo.png) la guardaríamos en el directorio “images” de nuestro tema.

Cambia el pie de página del panel de administración

El código iría igualmente en el archivo functions.php de vuestro tema. Esto os permite poner la frase que queráis, por ejemplo:

Borra opciones del menú de administración

Igualmente, pegamos el código en functions.php.

Incluso podemos quitarlo sólo si no eres administrador, por ejemplo. En este caso quitamos “Multimedia”:

Elimina metaboxes de las entradas

A la hora de crear una entrada en WordPress aparecen un montón de ventanas para introducir contenido o para mostrar información. Muchas veces nos sobran muchas de ellas y sólo generan confusión a usuarios que no sean conocedores de WordPress. Poniendo este código en functions.php podemos eliminar las que nos parezcan prescindibles:

Como veis la función remove_meta_box tiene tres parámetros: el primero es el “id” de la ventana que queremos eliminar, el segundo puede ser “page”, “post” o “link” dependiendo donde estemos y el tercero “normal”, “advanced” o “side” dependiendo dónde esté la ventana. En esta función sólo se quitan si no eres administrador. Si elimináis ese condicional se quitarán en todos los casos. Podéis ver qué es cada ventana en función de su “id” en el código HTML.

Elimina metaboxes del escritorio

También en el escritorio hay unas cuantas ventanas que nos pueden sobrar. También para functions.php el código sería:

Aquí igualmente las podéis identificar por el ID de la ventana que queráis eliminar.

Fuerza el escritorio a una sola columna

Puede ser que hayáis quitado tantas cosas del escritorio que os queden las dos columnas originales pero tengáis sólo una ocupada. Podéis forzar al escritorio a que tenga una sola columna con esta función:

Crea una ventana nueva en el escritorio

Como no siempre es sólo quitar, hay veces que también hay que añadir. Si queréis introducir una nueva ventana en el escritorio con algún texto (por ejemplo un texto de bienvenida), podéis poner en functions.php:

Como veis utilizamos la función de WordPress wp_add_dashboard_widget. Lamentablemente no parece que podamos elegir la ubicación de nuestro widget dentro del escritorio. Aparecerá abajo de todo. Si la posición es importante, podéis sustituir esta función por la normal de “add_meta_box”:

Esto está muy bien, pero quizás queramos añadir estilos propios para este código HTML que hemos añadido. ¿Cómo lo haríamos? Podemos crear un plugin. Añadimos una carpeta en la carpeta wp-content/plugins que vamos a llamar admin-escritorio. Dentro de esta carpeta creamos dos archivos, uno que se llame admin-escritorio.php y el otro admin-escritorio.css.

El primero, admin-escritorio.php sería:

A continuación podéis poner la función que vimos más arriba, que contiene el código HTML. Como veis hemos incluido la hoja de estilo, que tendrá el nombre admin-escritorio.css:

Bueno, esos estilos no tendrán mucho sentido en este caso. Son de una web que he hecho recientemente. Podréis cambiarlos por otros que necesitéis en función del código HTML que hayáis puesto en la función que vimos más arriba.

A propósito, una vez añadido el código del plugin no os olvidéis de activarlo!

Elimina y añade opciones de la barra de Administración

Desde la versión 3.3 de WordPress podemos personificar la barra de administración de una manera distinta a como se hacía hasta ahora. Hay un artículo muy bueno de Craig Buckler que nos lo muestra. Como veis se usan los métodos “remove_node” para eliminar y “add_node” para añadir. En este último caso hay que pasar un array con varios parámetros:

  • id — el id que aparecerá en el elemento HTML y que lo identifica
  • title — el texto que aparecerá en el menú de la barra
  • parent — el ID de la opción superior del menú, para el caso de submenú (opcional)
  • href — el enlace hacia donde irá el usuario al hacer click (opcional)
  • group — true (verdadero) si es un grupo (opcional)
  • meta — un array que incluye otras etiquetas, como: html, class, onclick, target, title, tabindex

Pondremos en el archivo functions.php;

Como veréis hemos añadido varias opciones. Una es una pestaña que crearemos más adelante que llamamos “Ayuda”. Otras dos que son de posibles entradas personalizadas de “Ropa” y la última que lleva al usuario a su página de autor de la web (quizás estos ejemplos no os valgan de nada, pero al provenir de un caso real quizás os den alguna idea). Por otro lado hemos eliminado con remove_node las opciones que vienen por defecto.

Crear una nueva pestaña en el menú de administración

Imagina que quieres crear una nueva pestaña en el menú que está a la izquierda en el panel de administración de WordPress. Vamos a suponer que queremos crear una página de instrucciones para nuestro cliente. Para ello podemos crear un plugin. Abrimos en wp-content/plugins una carpeta que se llame “instrucciones” y dentro creamos un archivo que se llame “instrucciones.php” que sería así:

Si queréis que tenga estilos podéis incluirlos en el propio archivo HTML en el caso de que no sean muy complejos para ganar sencillez. Podéis también aprovechar la hoja de estilos que creamos anteriormente.

No os olvidéis de activar el plugin.

Pon iconos personalizados en el menú del panel de administración

Si quieres puedes cambiar los iconos del panel de administración por otros más de tu gusto. Esto es especialmente útil para las entradas personalizadas. Necesitarás poner en functions.php esta función:

Como veis, en este caso el icono que ponemos se llama “nuevo-icono.png”. El icono debería tener un tamaño de 28×28 píxeles. El icono interior (una vez se ha hecho click y entramos en su página) tiene 32×32. Ambos se guardan, en este caso, en el directorio “images” de tu tema. En esta función tendréis que cambiar los id (que en el ejemplo son #menu-posts-ropa, #menu-posts-ropa:hover y #icon-edit.icon32-posts-ropa) por los correspondientes a la opción para la cual queréis cambiar el icono.

Campos personalizados, entradas personalizadas, cambios en el perfil de usuarios…..

Hay muchos más cambios que puedes realizar en el administrador de WordPress, aparte de los que acabamos de comentar, y que afectan a las entradas, a las páginas y a los perfiles de usuario.
Como los hemos visto en artículos anteriores, no voy a entrar en ellos. Haced click en la nube de etiquetas en “WordPress” y veréis artículos sobre los Usuarios, Taxonomías, Campos Personalizados, Entradas Personalizadas, etc..

¡Espero que este artículo os haya sido útil! ¡Os animo a que aportéis más trucos para personalizar el administrador de WordPress!

25 comentarios en “Personaliza el área de administración de WordPress

  1. Pingback: Cómo editar la nueva barra de herramientas en WordPress 3.3 y personalizar el menú

  2. Hola Juan. También me parece un artículo excelente por toda la documentación y el cuidado que has tenido en explicarlo todo tan bien. Es un gran descubrimiento Emenia y vuestro blog.

  3. Muchas gracias por la info!! ahora también te sigo en twitter y google+ :) me has ayudado mucho de verdad!! lo único que no acabo de ver es como puedo llamar a una función javscript desde una opción del admin bar, un saludo compañero!!

  4. Impresionante artículo!!!

    un millón de gracias por la dedicación y por las explicaciones. Creo que a mas de uno nos va a venir de perlas!

  5. Gracias por compartir tan valiosa información. El plugin de añadir opciones al menu es la base para poder integrar en el WordPress cualquier artilugio de programación que se disponga. En mi caso va a permitir integrar en el WordPress un propio CRM. Genial!!

  6. Hola,

    Interesante tus artículos y te estoy siguiendo ;-)

    Mi duda es, ¿este tipo de modificaciones serán en el núcleo del CMS con lo cual se perderán en la actualización?. Lo interesante sería tener algún tipo de plugin que pueda sobreescribir estos ficheros y que quedara en una capa superior nuestras modificaciones. Es decir, que fuera parte de una plantilla por ejemplo.

    gracias,

    • Hola Richard,

      No, todo lo que esté en la carpeta de tu tema (como el archivo functions.php) no se borra al actualizar, lo mismo que los plugins que sólo se borran o modifican al actualizar ese plugin en concreto.

  7. amigo toda la info esta buenisima, super interesante funcionan perfecto.

    Sabes necesito de tu ayuda. Cree en el menu de admin una pagina llamada nueva entrada pero me gustaría carga la pagina post-new.php?post_type=page dentro de esta. Tienes algún método o código que me ayude a realizar esto.

    o de cargar un php externo que muestre todo el contenido.

    Muchas gracias

  8. Un artículo utilísimo.

    No he encontrado en ningún otro sitio tantos tips funcionales como en este.

    Se gana mucho tiempo encontrando estas aclaraciones una detras de otra.

    Además tienes una forma muy clara de explicarlo para los que no somos programadores.

  9. Genial el post pero por ejemplo con “Borrar opciones del menú de administración” le veo un problema y es que cuando le quito las opcines de menu me lo quita incluso para el usuaro que está como ADMINITRADOR. Lo ideal sería que se pudiera hacer para un perfil de usuario determinado o al menos que no le desaparezcan al adminsitrador.

  10. Excelente tutorial, donde mas aqui pues XD.
    Lo voy ha implementar varios de ellos en mi thema function, para futuros colaboradoes. incluso para futuros clientes al desarrollarles la administracion mas simple.

    Gracias por este excelente aporte a la comunidad que sigue wordpress.

  11. Una entrada muy útil y bastante intersante.

    En ella se explica cómo quitar el apartado multimedia si no se es el administrador. Pero, cómo sería el código para permitir que los usuarios tengan sólo tengan acceso a añadir una nueva entrada y no a todas? Cuál es su página php que hay que incluir en el código?

     

    Muchisimas gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">