How to add HTML / Form to an Admin Bar Menu

I’d like to add a custom form to the admin bar in WordPress. is there a way to accomplish this? So far all of the documentation seems to only allow the addition of simple text links.

Related posts

Leave a Reply

2 comments

  1. I just gave this a shot and it seemed to work fine:

    function wpse_form_in_admin_bar() {
        global $wp_admin_bar;
    
        $wp_admin_bar->add_menu( array(
            'id' => 'wpse-form-in-admin-bar',
            'parent' => 'top-secondary',
            'title' => '<form><input type="text" /><input type="submit" /> </form>'
        ) );
    }
    add_action( 'admin_bar_menu', 'wpse_form_in_admin_bar' );
    

    You’ll have to do some work to gussy it up a bit, but it looks like there is a chance you can do what you want.

  2. what @tollmanz suggested will probably work, but to avoid having your text breaking out the menu width, I would suggest

     function wpse_form_in_admin_bar() {
        global $wp_admin_bar;
    
        $wp_admin_bar->add_menu( array(
            'id' => 'wpse-form-in-admin-bar',
            'parent' => 'top-secondary',
            'title' => 'title_goes_here',
    'meta'   => array(
                'target'   => '_self',
                'html'     => '<!-- Custom HTML that goes below the item --><form><input type="text" /><input type="submit" /> </form>',
            ),
    
    ) 
    
    );
    }
    add_action( 'admin_bar_menu', 'wpse_form_in_admin_bar' );