1. Code
  2. WordPress

Persistentes notificaciones de administrador de WordPress: Parte 1

Scroll to top
9 min read
This post is part of a series called Persisted WordPress Admin Notices.
Persisted WordPress Admin Notices: Part 2

Spanish (Español) translation by Luis Chiabrera (you can also view the original English article)

Los avisos de administración de WordPress proporcionan una forma conveniente de mostrar mensajes a los usuarios en el área de administración, p. después de que se haya actualizado una publicación o se haya activado un complemento. También son utilizados por muchos temas y complementos para mostrar notificaciones sobre cualquier cosa, desde nuevas funciones o advertencias de seguridad hasta detalles sobre promociones en curso o solicitudes de actualización.

El núcleo de WordPress proporciona cuatro avisos administrativos diferentes que se pueden usar contextualmente para alertar a un usuario sobre un tipo de aviso específico. Esto se logra al mostrar un color de acento único para cada tipo de aviso de administrador.

Los avisos administrativos generalmente se muestran en la parte superior de cada página de administración para destacarse del contenido de la página principal y ser claramente perceptibles. Están elegantemente diseñados para no distraer demasiado la vista.

WordPress core admin noticeWordPress core admin noticeWordPress core admin notice

WordPress también reutiliza avisos administrativos en otras ubicaciones a través de la interfaz de administración, como cuando hay disponible una actualización de tema o complemento. El uso principal de los avisos de administrador no se limita a mostrarse en la parte superior de la pantalla de administración.

WordPress admin notices in alternative locationWordPress admin notices in alternative locationWordPress admin notices in alternative location

Mostrar un aviso de administrador en un complemento o tema personalizado es relativamente fácil, ya que solo se requieren unas pocas líneas de código, como descubriremos en breve. Sin embargo, WordPress no proporciona una forma predeterminada para descartar un aviso de administrador persistente.

Aunque puede agregar un botón de descartar a cualquier aviso de administrador, esto no impide que vuelva a aparecer cuando se vuelve a cargar la página. Además, los avisos de administrador aparecen en cada página de administración, lo que está lejos de ser ideal.

Si desea tener control granular sobre cuándo y dónde se muestran los avisos administrativos y para poder descartarlos de manera efectiva, deberá agregar un código personalizado para modificar el comportamiento predeterminado.

Lo que cubriremos

Empezaremos por el principio y exploraremos los aspectos básicos de la implementación de avisos de administrador a través de un complemento personalizado, que incluye mostrarlos solo en páginas específicas del administrador de WordPress.

Los avisos administrativos aparecen en cada página de manera predeterminada, que no es siempre lo que usted desea. Por ejemplo, es posible que solo desee mostrar una notificación en la página de opciones de un complemento. Por lo tanto, nuestro próximo puerto de escala será visualizar notificaciones de administrador de manera condicional, dependiendo de la pantalla de administración actual.

Sobre la base de esto, presentaremos formas de administrar aún más los avisos administrativos controlando cuándo aparecen. En lugar de aparecer tan pronto como se carga la página, solo aparecerán si se cumplen ciertas condiciones de activación. Esto podría ser útil, por ejemplo, si desea mostrar un aviso de administrador en la página de opciones de un complemento, pero solo después de que se haya guardado la configuración.

Como se mencionó anteriormente, no hay una manera fácil de descartar los avisos administrativos persistentes entre las cargas de la página. Por lo tanto, el resto de la serie de tutoriales se centrará principalmente en varios métodos que puede emplear para descartar los avisos de administrador para que no vuelvan a aparecer inesperadamente.

Finalmente, para un poco de diversión, veremos cómo puede crear sus propios tipos de avisos de administrador personalizados y agregar decoración adicional como iconos a sus avisos de administrador.

Al final de esta serie de tutoriales, podrá mostrar cualquier tipo de aviso de administrador en cualquier lugar dentro del administrador de WordPress. Además, podrá decidir si desea mostrarlos en la carga de la página o a través de una acción personalizada, y también podrá descartarlos de diferentes maneras, según sus necesidades.

¿Quieres seguir adelante?

Sacará el máximo provecho de esta serie de tutoriales si sigue a medida que elaboramos cada ejemplo de aviso de administrador. El código se presenta en un enfoque paso a paso que le permite construir un plugin que funcione por su cuenta a medida que avanzamos en el tutorial. Sin embargo, si no desea escribir todo el código usted mismo, el complemento final estará disponible para su descarga en la parte cuatro.

Se supone que tiene al menos un conocimiento práctico rudimentario del desarrollo de los complementos de WordPress, incluido cómo funcionan los ganchos. De lo contrario, recomendaría leer estos temas a través de la documentación oficial de WordPress antes de continuar:

Para probar el código del complemento para cada ejemplo, necesitarás un sitio de WordPress que funcione. La forma más fácil de hacerlo es instalar WordPress localmente para que tenga fácil acceso a editar archivos.

Hay muchas opciones para desarrollar localmente con WordPress, que incluyen:

Si es nuevo en el desarrollo de WordPress, es probable que Local o DesktopServer sean los más fáciles de configurar. Local es de uso gratuito (tienen una versión premium en proceso), y DesktopServer tiene una versión limitada (gratuita) más una versión premium disponible.

Además, se recomienda alguna experiencia previa de PHP y JavaScript, así como alguna experiencia de implementación de solicitudes Ajax. Sin embargo, todo se explicará en el camino, por lo que no se requiere un conocimiento profundo.

Una mirada más cercana a los avisos de administrador

Echemos un vistazo a la implementación más básica de un aviso de administrador y el código requerido para presentar un aviso de tipo de éxito.

1
function display_admin_notice() {
2
  ?>
3
  <div class="notice notice-success"><p>The secret to success is to know something nobody else knows ~ Aristotle Onassis</p></div>
4
  <?php
5
}
6
add_action( 'admin_notices', 'display_admin_notice' );
A Successful admin noticeA Successful admin noticeA Successful admin notice

Todo lo que hicimos aquí fue registrar la función display_admin_notice () que se ejecutará cuando el gancho admin_notices se active. No importa cómo se llame a la función registrada: no afectará la forma en que se presenta el aviso de administración.

No se preocupe por ingresar el código arriba usted mismo ahora mismo; solo enfóquese en cómo se genera el aviso de administración, ya que desarrollaremos esto en tutoriales posteriores.

Puede usar cualquier marcado que desee para mostrar un aviso de administrador; sin embargo, el formato recomendado es el siguiente:

1
<div class="{class}"><p>{message}</p></div>

Reemplace {class} con una lista de nombres de clase CSS. Debe incluir el notice de clase más cualquiera de las siguientes clases para determinar el tipo de aviso de administrador:

  • notice-error (rojo)
  • notice-warning (amarillo/naranja)
  • notice-success (verde)
  • notice-info (azul)
The various admin noticesThe various admin noticesThe various admin notices

El bloque {message} puede ser cualquier texto o HTML válido que se mostrará dentro del aviso de administrador.

El ejemplo anterior muestra avisos de administrador en todas las páginas de administración, lo que no siempre es ideal, por lo que en la segunda parte veremos cómo puede controlar exactamente en qué páginas aparecen.

Hay otra clase de CSS incorporada que puede agregar a div.notice que agrega un botón de descarte al aviso de administrador. Veamos qué sucede cuando el mismo aviso administrativo de éxito tiene agregada la clase is-dismissible.

1
function display_admin_notice() {
2
  ?>
3
  <div class="notice notice-success is-dismissible"><p>The secret to success is to know something nobody else knows ~ Aristotle Onassis</p></div>
4
  <?php
5
}
6
add_action( 'admin_notices', 'display_admin_notice' );
Our first admin noticeOur first admin noticeOur first admin notice

Ahora tenemos una manera fácil de descartar un aviso de administrador. Sin embargo, antes de emocionarte demasiado, hay un problema con el uso de este método. Si actualiza la página, ¡reaparece el aviso de administrador! Por lo tanto, aunque puede configurar un aviso de administrador para que sea descartado, es persistente y el estado descartado se olvida entre cargas de página.

Más adelante, cubriremos los avisos administrativos persistentes en detalle y exploraremos varias formas en que puede descartarlos sin que vuelvan a aparecer.

¡Pero los avisos de administrador son malos! ¿O no lo son?

Si está familiarizado con los avisos administrativos en WordPress y / o manténgase al día con las noticias de WordPress en general, entonces puede estar al tanto de cierta cantidad de negatividad con respecto al uso de avisos administrativos en los plugins y temas personalizados.

Esto se debe a que algunos complementos sobreutilizan los avisos administrativos en un intento de transmitir sus mensajes "importantes". Si tienes muchos plugins instalados y solo algunos de ellos abusan del sistema de notificación de administración, puedes terminar rápidamente con una 'sopa' de aviso de administrador, donde todo un enredo de avisos se muestra en la parte superior de cada página de administración.

Sobrecargar las pantallas de administración con avisos innecesarios puede causar caos (y dolores de cabeza) y es comprensiblemente molesto para los usuarios, ya que dificulta la administración de un sitio.

Lo ideal es que solo se muestren avisos administrativos importantes, como actualizaciones de seguridad críticas, en cada carga de página. Si está mostrando avisos administrativos globales para informarle a los usuarios que se acaba de actualizar un complemento, y le pide que haga clic en un enlace para obtener más información, entonces realmente debería preguntarse si esto debe estar en cada página de administración.

Además, un favorito típico es mostrar un aviso de administrador no crítico que no se puede descartar de forma permanente. ¡Te garantizo que no hay una forma más fácil de alienar a tus usuarios de complementos que haciendo esto!

Sin embargo, hay casos de uso para avisos persistentes que no son descartables, como actualizaciones de bases de datos. Los complementos que usan tablas personalizadas pueden necesitar ejecutar rutinas de actualización de base de datos de vez en cuando para mantener el plugin funcionando correctamente. Entonces, en este caso, es razonable agregar un aviso administrativo no descartable.

Una buena regla general es emplear el sentido común. ¿Te molestaría el administrador que estás a punto de agregar a tu complemento como usuario? Si es así, puede reconsiderar agregar el aviso, o considerar si se mostraría mejor en una ubicación alternativa.

Conclusión

En este tutorial, hemos cubierto los avisos administrativos y los distintos tipos incorporados proporcionados por WordPress, incluido un aviso de administrador que se ha descartado. Como hemos visto, hay algunos inconvenientes en la implementación predeterminada de los avisos de administrador, como no ser descartable y el hecho de que se representan en cada página de administración.

WordPress tiene una economía increíblemente activa. Existen temas, complementos, bibliotecas y muchos otros productos que lo ayudan a construir su sitio y proyecto. La naturaleza de código abierto de la plataforma también la convierte en una excelente opción desde la que puede mejorar sus habilidades de programación. En cualquier caso, puede ver lo que tenemos disponible Envato Market.

El resto de los tutoriales de esta serie se centrarán en cómo podemos ampliar los avisos administrativos para que sean más prácticos cuando se utilizan en sus propios complementos y temas.