Как добавить фавикон, который отображается только при просмотре админ-панели моего плагина?

7 окт. 2012 г., 17:59:13
Просмотры: 208
Голосов: 0

Как добавить фавикон, который отображается только при просмотре админ-панели моего плагина? То есть, какой хук нужно использовать?

0
Все ответы на вопрос 2
2

Когда вы добавляете свою административную (под)страницу, то (надеюсь) используете функцию add_*menu_page(). Вы можете просто сохранить её результат в переменную. Эта переменная и есть $hook_suffix.

Затем вы можете просто добавить свой колбэк (который добавляет фавикон) к хуку admin_head-{$suffix} Источник. Как показывает скриншот плагина, также существуют хуки load-{$hook_suffix} Источник, которые срабатывают немного раньше.

Редактирование: Чтобы лучше понять и "доказать", что этот хук действительно существует, вы можете использовать мой плагин »current admin info«, который можно скачать на GitHub. Он показывает, какие глобальные переменные установлены, а также какие контекстные хуки доступны и каковы их названия на текущей просматриваемой административной странице.

Информация о текущей административной странице

Пример

Вот как это можно сделать процедурно. В коде, построенном по принципам ООП, вы, вероятно, сохраните это в переменную класса и затем используете эту переменную для добавления своего действия/колбэка фавикона.

function wpse61424_register_admin_page()
{
    $hook_suffix = add_menu_page( /* аргументы */ );
    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 окт. 2012 г. 18:07:35
Комментарии

У меня не получилось заставить это работать. У вас есть пример? И вы уверены, что это не устарело в версии 3.4 с более лучшим решением?

Volomike Volomike
7 окт. 2012 г. 19:39:08

@Volomike Смотрите правки

kaiser kaiser
8 окт. 2012 г. 08:17:15
2

Вы можете добавить этот код в файл functions.php или создать из него плагин.

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 окт. 2012 г. 18:11:38
Комментарии

Я только что провёл тест — это происходит со ВСЕМИ страницами админки, а не только с теми, что относятся к моему плагину.

Volomike Volomike
7 окт. 2012 г. 18:37:57

Условие if вокруг add_action() могло бы решить эту проблему.

hampusn hampusn
8 окт. 2012 г. 08:22:17