Añadir un widget al dashboard del admin

Php marzo 10, 2026

El dashboard de WordPress (la pantalla de inicio del admin) admite widgets personalizados que pueden mostrar información relevante del plugin o del sitio. Es una forma elegante de dar visibilidad a datos importantes sin obligar al usuario a navegar a otra pantalla.

Casos de uso: resumen de estadísticas del plugin, estado de sincronizaciones, accesos rápidos a las secciones más usadas, últimas entradas de un CPT propio, estado de integraciones externas.

<?php
add_action( 'wp_dashboard_setup', 'mi_widget_dashboard' );
function mi_widget_dashboard() {
    wp_add_dashboard_widget(
        'mi_widget',
        'Resumen del Plugin',
        'mi_widget_render'
    );
}

function mi_widget_render() {
    $total = wp_count_posts( 'proyecto' )->publish;
    echo '

Proyectos publicados: ' . intval( $total ) . '

'; $ultima = get_option( 'mi_ultima_ejecucion', 'Nunca' ); echo '

Última sincronización: ' . esc_html( $ultima ) . '

'; echo 'Ver proyectos'; }

¿Qué hace cada parte?

  • wp_dashboard_setup: hook que se dispara durante la carga del dashboard. Es el único momento en que wp_add_dashboard_widget() funciona.
  • wp_add_dashboard_widget(): registra el widget. Parámetros: ID único, título visible en el widget, función de renderizado. Opcionalmente acepta un cuarto parámetro para una función de configuración.
  • wp_count_posts(): devuelve un objeto con el conteo de posts por estado (publish, draft, trash, etc.) para el tipo de contenido indicado.
  • intval(): fuerza el conteo a entero antes de mostrarlo — previene mostrar valores inesperados si la propiedad no existiera.
  • get_option( …, ‘Nunca’ ): recupera la opción con un valor por defecto legible en caso de que nunca se haya ejecutado la sincronización.
  • admin_url(): genera URLs del panel de administración de forma portable, sin depender del dominio o la instalación en subdirectorio.