Cum adaug un favicon care apare doar în panoul de administrare al pluginului meu?

7 oct. 2012, 17:59:13
Vizualizări: 208
Voturi: 0

Cum adaug un favicon care apare doar în panoul de administrare al pluginului meu? Adică, ce eveniment trebuie să interceptez?

0
Toate răspunsurile la întrebare 2
2

Când adaugi pagina ta de administrare (subpagină), atunci (sperăm) folosești add_*menu_page(). Poți pur și simplu să salvezi rezultatul într-o variabilă. Această variabilă este $hook_suffix.

Apoi, poți pur și simplu să adaugi callback-ul tău (care adaugă favicon-ul) la hook-ul admin_head-{$suffix} Sursă Link. După cum arată captura de ecran din plugin, există și load-{$hook_suffix}-hook-uri Sursă Link, care sunt un pic mai devreme.

Editare: Pentru a obține o mai bună înțelegere și pentru a "dovedi" că acest hook există de fapt, poți folosi plugin-ul meu »informații curente admin«, pe care îl poți descărca de pe GitHub. Acesta îți arată care variabile globale sunt setate, precum și care hook-uri contextuale sunt disponibile și care sunt numele lor, pe pagina de administrare pe care o vizualizezi.

Informații despre pagina de administrare curentă

Exemplu

Iată cum ai putea face acest lucru într-un mod procedural. În cadrul unui cod structurat OOP, probabil ai salva într-o variabilă de clasă și apoi ai folosi această variabilă pentru a adăuga acțiunea/callback-ul pentru favicon.

function wpse61424_register_admin_page()
{
    $hook_suffix = add_menu_page( /* adaugă argumente */ );
    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
Comentarii

Nu am reușit să fac asta să funcționeze. Ai un exemplu? De asemenea, ești sigur că asta nu este învechit în versiunea 3.4 cu o soluție mai bună?

Volomike Volomike
7 oct. 2012 19:39:08

@Volomike Vezi modificarea

kaiser kaiser
8 oct. 2012 08:17:15
2

Puteți adăuga acest cod în fișierul functions.php sau puteți crea un plugin din el.

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
Comentarii

Tocmai am rulat un test -- se întâmplă pe TOATE paginile de administrare, nu doar pe cele pentru pluginul meu.

Volomike Volomike
7 oct. 2012 18:37:57

O instrucțiune if în jurul funcției add_action() ar putea rezolva problema.

hampusn hampusn
8 oct. 2012 08:22:17