Come aggiungere un favicon che viene mostrato solo durante la visualizzazione del pannello di amministrazione del mio plugin?

7 ott 2012, 17:59:13
Visualizzazioni: 208
Voti: 0

Come posso aggiungere un favicon che viene visualizzato solo durante la visualizzazione del pannello di amministrazione del mio plugin? Quale evento devo intercettare?

0
Tutte le risposte alla domanda 2
2

Quando aggiungi la tua pagina (sotto)admin, allora (si spera) stai utilizzando add_*menu_page(). Puoi semplicemente salvare il risultato in una variabile. Questa variabile è il $hook_suffix.

Quindi puoi semplicemente aggiungere la tua callback (che aggiunge il favicon) a l'hook admin_head-{$suffix} Link alla Fonte. Come mostra lo screenshot dei plugin, ci sono anche gli load-{$hook_suffix}-hooks Link alla Fonte, che sono un po' più precoci.

Modifica: Per ottenere una migliore comprensione e per "dimostrare" che questo hook esiste effettivamente, puoi utilizzare il mio plugin »current admin info«, che puoi scaricare su GitHub. Ti mostra quali globali sono impostati, così come quali hook contestuali sono disponibili e quali sono i loro nomi, nella pagina admin che stai visualizzando.

Informazioni sull'immagine

Esempio

Ecco come faresti in modo procedurale. All'interno di un pezzo di codice strutturato OOP, probabilmente lo salveresti in una variabile di classe e poi utilizzeresti questa variabile per aggiungere la tua azione/callback del favicon.

function wpse61424_register_admin_page()
{
    $hook_suffix = add_menu_page( /* aggiungi argomenti */ );
    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 ott 2012 18:07:35
Commenti

Non sono riuscito a farlo funzionare. Hai un esempio? Inoltre, sei sicuro che questo non sia deprecato nella 3.4 con una soluzione migliore?

Volomike Volomike
7 ott 2012 19:39:08

@Volomike Vedi modifica

kaiser kaiser
8 ott 2012 08:17:15
2

Puoi aggiungere questo al tuo file functions.php o creare un plugin con esso.

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 ott 2012 18:11:38
Commenti

Ho appena eseguito un test -- lo fa su TUTTE le pagine di amministrazione, non solo quelle del mio plugin.

Volomike Volomike
7 ott 2012 18:37:57

Un'istruzione if attorno a add_action() potrebbe risolvere il problema.

hampusn hampusn
8 ott 2012 08:22:17