Cómo añadir un favicon que solo se muestre en el panel de administración de mi plugin

7 oct 2012, 17:59:13
Vistas: 208
Votos: 0

¿Cómo añado un favicon que solo se muestre durante la visualización del panel de administración de mi plugin? Es decir, ¿qué evento debo interceptar?

0
Todas las respuestas a la pregunta 2
2

Cuando agregas tu página de administración (subpágina), entonces (con suerte) estás usando add_*menu_page(). Puedes simplemente guardar su resultado en una variable. Esta variable es el $hook_suffix.

Luego puedes simplemente agregar tu callback (que añade el favicon) al hook admin_head-{$suffix} Enlace Fuente. Como muestra la captura de pantalla de los plugins, también están los load-{$hook_suffix}-hooks Enlace Fuente, que se ejecutan un poco antes.

Edición: Para obtener mejores conocimientos y "probar" que este hook realmente existe, puedes usar mi plugin »información actual de administración«, que puedes descargar en GitHub. Te muestra qué variables globales están configuradas, así como qué hooks contextuales están disponibles y cuáles son sus nombres, en la página de administración que estás viendo actualmente.

Captura de pantalla del plugin de información de administración

Ejemplo

Aquí está cómo lo harías de manera procedural. Dentro de un código estructurado con OOP, probablemente lo guardarías en una variable de clase y luego usarías esta variable para agregar tu acción/callback del favicon.

function wpse61424_register_admin_page()
{
    $hook_suffix = add_menu_page( /* agregar argumentos */ );
    add_action( "admin_head-{$hook_suffix}", 'wpse67424_parttime_favicon' );
}
function wpse67424_parttime_favicon()
{
    printf(
         '<link rel="shortcut icon" href="%s" />'
        ,plugin_dir_url( 'favicon.ico' )
    );
}
7 oct 2012 18:07:35
Comentarios

No pude hacer que esto funcione. ¿Tienes un ejemplo? Además, ¿estás seguro de que esto no está obsoleto en la versión 3.4 con una mejor solución?

Volomike Volomike
7 oct 2012 19:39:08

@Volomike Ver edición

kaiser kaiser
8 oct 2012 08:17:15
2

Puedes agregar esto a tu archivo functions.php o crear un plugin con ello.

function volimike_admin_area_favicon() {
    echo '<link rel="shortcut icon" href="http://link.to/favicon.ico" />';
}
add_action('admin_head', 'volimike_admin_area_favicon');
7 oct 2012 18:11:38
Comentarios

Acabo de hacer una prueba: lo hace en TODAS las páginas de administración, no solo en las de mi plugin.

Volomike Volomike
7 oct 2012 18:37:57

Una declaración if alrededor del add_action() podría resolver eso.

hampusn hampusn
8 oct 2012 08:22:17