Как изменить стандартную иконку пользовательского плагина?

2 февр. 2013 г., 12:54:34
Просмотры: 27.7K
Голосов: 6

Я создал пользовательский плагин для ОПРОСОВ. Когда я активирую его, в боковой панели появляется стандартная иконка. Я хочу изменить эту стандартную иконку. Вот мой код, который я написал в файле init.php.

add_action('admin_menu', 'mt_add_pages');

// функция действия для хука выше
function mt_add_pages() {

    // Добавляем новое меню верхнего уровня (не рекомендуется):
    add_menu_page(__('Poll','menu-test'), __('Poll','menu-test'), 'manage_options', 'manage-polls', 'poll_page' );

    // Добавляем подменю к пользовательскому меню верхнего уровня:
    add_submenu_page('manage-polls', __('Add New Poll','menu-test'), __('Add New Poll','menu-test'), 'manage_options', 'add-poll', 'add_new_poll_page');

}

// mt_toplevel_page() отображает содержимое страницы для пользовательского меню Test Toplevel
function poll_page() {
    if (!current_user_can('manage_options'))
    {
      wp_die( __('You do not have sufficient permissions to access this page.') );
    }
    echo "<br/>";
    echo "<div>";
    echo '<div style="float:left;"><img width="20" height = "20" src="'.site_url().'/wp-content/plugins/poll/images/poll_red.png" /></div>';
    echo "</div>";
    echo "<h2>" . __( 'Manage Polls', 'menu-test' ) . "</h2>";

    include_once 'manage-polls.php';
}

// mt_sublevel_page() отображает содержимое страницы для первого подменю
// пользовательского меню Test Toplevel
function add_new_poll_page() {
    if (!current_user_can('manage_options'))
    {
      wp_die( __('You do not have sufficient permissions to access this page.') );
    }
    echo "<br/>";
    echo "<div>";
    echo '<div style="float:left;"><img width="20" height = "20" src="'.site_url().'/wp-content/plugins/poll/images/poll_red.png" /></div>';
    echo "</div>";
    include_once 'poll_form.php';
}

Я искал решение, но результаты не приходят для пользовательской темы. :( поэтому я спрашиваю здесь. Заранее спасибо!!!!!!

1
Комментарии
Все ответы на вопрос 2
2

Функция add_menu_page() имеет параметр $icon_url. Размер иконки должен быть 16x16 пикселей.

add_menu_page(
    __( 'Опрос', 'example_textdomain' ),
    __( 'Опрос', 'example_textdomain' ),
    'manage_options',
    'manage-polls',
    'poll_page',
    plugin_dir_url( __FILE__ ) . 'images/poll_red.png'
);

Смотрите параметры add_menu_page.

2 февр. 2013 г. 13:16:13
Комментарии

можешь сказать, что такое 'menu-test' здесь. Потому что я хочу изменить название подменю. Когда я запускаю этот код, создается два подменю под POLL: одно Poll, а другое Add New Poll, но я хочу Manage Polls и Add New Poll

Bhuvnesh Gupta Bhuvnesh Gupta
2 февр. 2013 г. 13:30:13

Это textdomain для локализации. Смотри How To Localize WordPress Themes and Plugins. На самом деле, я скопировал часть твоего кода.

Max Yudin Max Yudin
2 февр. 2013 г. 13:34:36
1

Внимательно изучите хук add_menu_page, он предоставляет аргумент для указания URL иконки

<?php 
add_menu_page( 
    $page_title, 
    $menu_title, 
    $capability, 
    $menu_slug, 
    $function, 
    $icon_url, 
    $position 
); 

http://codex.wordpress.org/Function_Reference/add_menu_page

add_menu_page(
    __('Опрос','menu-test'), 
    __('Опрос','menu-test'), 
    'manage_options', 
    'manage-polls', 
    'poll_page',
    'plugins_folder Or Theme folder url/icon.png' 
);
2 февр. 2013 г. 13:11:23
Комментарии

Это всё здорово, но есть несколько вещей, которые не описаны в кодексе: 1) каким должен быть размер иконки. 2) Как использовать SVG, чтобы он соответствовал цветовой схеме (указан только тип данных, но не объяснено точно как или какой подход использовать). 3) Как сделать иконку атрибутом :before, как всё остальное.

UXerUIer UXerUIer
27 июн. 2019 г. 17:40:04