¿Es la nueva barra de administración de WordPress 3.1 conectable y cómo puedo extenderla?

8

¿Cómo puedo ampliar las funciones de la barra de administración de WordPress 3.1 en mis complementos?

Estoy buscando enganches y filtros específicos para usar al agregar enlaces u otras funciones a la barra de administración.

Un buen ejemplo de lo que ya se ha hecho es Yoast WordPress SEO (Wordpress Plugin) .

Actualmentenohaydocumentacióndisponiblesobrecómoampliarlabarradeadministración.Según El Códice hay dos filtros para desactivarlo o no mostrarlo:

no_admin_bar() & show_admin_bar()

    
pregunta Chris_O 07.12.2010 - 17:36

3 respuestas

16

El complemento de Yoast es en realidad un muy buen ejemplo si todo lo que quieres hacer es agregar menús. Básicamente, la barra de administración es solo un conjunto alternativo de enlaces a las mismas páginas de administrador de complementos que tiene en la barra lateral. Para agregar el menú SEO de nivel superior, Yoast hace lo siguiente:

$wp_admin_bar->add_menu( array( 'id' => 'wpseo-menu', 'title' => __( 'SEO' ), 'href' => get_admin_url('admin.php?page=wpseo_dashboard'), ) );

Esto agrega un menú llamado "wpseo-menu" a la barra de administración y dirige a los usuarios al panel del complemento cuando hacen clic en el enlace. Los enlaces secundarios se agregan de manera similar:

$wp_admin_bar->add_menu( array( 'parent' => 'wpseo-menu', 'id' => 'wpseo-kwresearch', 'title' => __( 'Keyword Research' ), '#', ) );

Simplemente especifique el "padre" del menú que está agregando.

Luego puede ir tan profundo como sea necesario, llamando a $wp_admin_bar->add_menu() cuando lo necesite y especificando la información apropiada.

Para referencia, la variable, $wp_admin_bar es una instancia de la clase WP_Admin_Bar() dentro de WordPress. Tiene varios métodos y propiedades diferentes, pero el que más te interesa aquí es, obviamente, add_menu() . Este método acepta ciertos parámetros:

  • título : falso por defecto
  • href : predeterminado falso,
  • padre - falso por defecto - pase el valor de ID para un submenú de ese menú
  • id : el valor predeterminado es un valor de título saneado.
  • meta : falso predeterminado: matriz de cualquiera de las siguientes opciones: array( 'html' => '', 'class' => '', 'onclick' => '', target => '' );

Pero el resto de la clase WP_Admin_Bar() es conectable. Solo depende de lo que está intentando hacer exactamente y de cómo quiere hacerlo.

Ver también:

respondido por el EAMann 07.12.2010 - 19:44
11

pequeño ejemplo, había escrito esto también en la lista de wp-hackers antes de ver los días

function wp_codex_search_form() {
    global $wp_admin_bar, $wpdb;

    if ( !is_super_admin() || !is_admin_bar_showing() )
        return;

    $codex_search = '<form target="_blank" method="get" action="http://wordpress.org/search/do-search.php" style="margin:2px 0 0;">
        <input type="text" onblur="this.value=(this.value==\'\') ? \'Search the Codex\' : this.value;" onfocus="this.value=(this.value==\'Search the Codex\') ? \'\' : this.value;" maxlength="100" value="Search the Codex" name="search" class="adminbar-input">
        <button type="submit" class="adminbar-button">
            <span>Go</span>
        </button>
    </form>';

    /* Add the main siteadmin menu item */
    $wp_admin_bar->add_menu( array( 'id' => 'codex_search', 'title' => 'Search Codex', 'href' => FALSE ) );
    $wp_admin_bar->add_menu( array( 'parent' => 'codex_search', 'title' => $codex_search, 'href' => FALSE ) );
}
add_action( 'admin_bar_menu', 'wp_codex_search_form', 1000 );
    
respondido por el bueltge 07.12.2010 - 20:12
7

Descarga la compilación nocturna y revisa estos dos archivos;

  • wp-includes / admin-bar.php
  • wp-includes / class-wp-admin-bar.php

La clase WP_Admin_Bar es esencialmente la 'API', mientras que el archivo admin-bar.php lo usa para construir la barra predeterminada y disparar una carga de ganchos.

function my_admin_bar()
{
    global $wp_admin_bar;
    $wp_admin_bar->add_menu(array(
        'parent' => 'my-account', // optional
        'id'     => 'my-unique-id',
        'title'  => '',
        'href'   => ''
    ));
}
add_action('admin_bar_menu', 'my_admin_bar');

Eso es prácticamente lo básico: esto es todo lo que he recogido de una mirada rápida (para ser honesto, es un poco molesto que el gancho admin_bar_menu no devuelva la instancia de WP_Admin_Bar - Odio todo estos globales!)

    
respondido por el TheDeadMedic 07.12.2010 - 19:42

Lea otras preguntas en las etiquetas