¿Cómo cambiar el ícono predeterminado de un plugin personalizado?

2 feb 2013, 12:54:34
Vistas: 27.7K
Votos: 6

He creado un plugin personalizado para ENCUESTAS. Cuando lo activo, aparece un ícono predeterminado en la barra lateral. Quiero cambiar este ícono predeterminado. Aquí está mi código que escribí en el archivo init.php.

add_action('admin_menu', 'mt_add_pages');

// función de acción para el hook anterior
function mt_add_pages() {

    // Agregar un nuevo menú de nivel superior (no recomendado):
    add_menu_page(__('Encuestas','menu-test'), __('Encuestas','menu-test'), 'manage_options', 'manage-polls', 'poll_page' );

    // Agregar un submenú al menú personalizado de nivel superior:
    add_submenu_page('manage-polls', __('Agregar Nueva Encuesta','menu-test'), __('Agregar Nueva Encuesta','menu-test'), 'manage_options', 'add-poll', 'add_new_poll_page');
}

// mt_toplevel_page() muestra el contenido de la página para el menú personalizado de nivel superior
function poll_page() {
    if (!current_user_can('manage_options'))
    {
      wp_die( __('No tienes suficientes permisos para acceder a esta página.') );
    }
    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>" . __( 'Administrar Encuestas', 'menu-test' ) . "</h2>";

    include_once 'manage-polls.php';
}

// mt_sublevel_page() muestra el contenido de la página para el primer submenú
// del menú personalizado de nivel superior
function add_new_poll_page() {
    if (!current_user_can('manage_options'))
    {
      wp_die( __('No tienes suficientes permisos para acceder a esta página.') );
    }
    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';
}

Busqué pero no encuentro resultados para temas personalizados. :( por eso pregunto aquí. ¡¡¡¡¡Gracias de antemano!!!!!

1
Todas las respuestas a la pregunta 2
2

add_menu_page() tiene el parámetro $icon_url. El tamaño del icono debe ser de 16x16 píxeles.

add_menu_page(
    __( 'Encuesta', 'example_textdomain' ),
    __( 'Encuesta', 'example_textdomain' ),
    'manage_options',
    'manage-polls',
    'poll_page',
    plugin_dir_url( __FILE__ ) . 'images/poll_red.png'
);

Ver parámetros de add_menu_page.

2 feb 2013 13:16:13
Comentarios

¿Puedes decirme qué es 'menu-test' en esto? Porque quiero cambiar el nombre del submenú. Cuando ejecuto el código anterior, se crean dos submenús bajo POLL, uno es Poll y otro es Add New Poll, pero quiero que diga Manage Polls y Add New Poll

Bhuvnesh Gupta Bhuvnesh Gupta
2 feb 2013 13:30:13

Es el textdomain para localización. Mira Cómo localizar temas y plugins de WordPress. De hecho, he copiado una parte de tu código.

Max Yudin Max Yudin
2 feb 2013 13:34:36
1

Echa un vistazo detenidamente al hook add_menu_page, proporciona un argumento para suministrar la URL del icono

<?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(
    __('Encuesta','menu-test'), 
    __('Encuesta','menu-test'), 
    'manage_options', 
    'manage-polls', 
    'poll_page',
    'plugins_folder Or Theme folder url/icon.png' 
);
2 feb 2013 13:11:23
Comentarios

Esto es genial y todo, pero hay algo que el codex no muestra: 1) cuál debería ser el tamaño del icono. 2) Cómo incorporar un SVG que coincida con el esquema de colores (solo menciona el tipo de datos pero no especifica exactamente cómo o el enfoque). 3) Hacer que el icono sea un atributo :before como todo lo demás.

UXerUIer UXerUIer
27 jun 2019 17:40:04