WordPress.org

Make WordPress Core

Opened 2 years ago

Closed 8 months ago

#20595 closed defect (bug) (invalid)

Collapsible Admin menu fails if items are added by code

Reported by: digitaldonkey Owned by:
Milestone: Priority: normal
Severity: normal Version: 3.3.1
Component: Administration Keywords: dev-feedback
Focuses: Cc:

Description

If I add a Button to the admin meny by action adminmenu the menu wont rebuid from collapsed state due z-index issues. In my opinion creating the menue might be changed to the following:

diff --git a/wp-admin/menu-header.php b/wp-admin/menu-header.php
index cdd81b2..8454a3d 100644
--- a/wp-admin/menu-header.php
+++ b/wp-admin/menu-header.php
@@ -164,10 +164,6 @@ function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {
                }
                echo "</li>";
        }
-
-       echo '<li id="collapse-menu" class="hide-if-no-js"><div id="collapse-button"><div></div></div>';
-       echo '<span>' . esc_html__( 'Collapse menu' ) . '</span>';
-       echo '</li>';
 }

 ?>
@@ -181,6 +177,9 @@ function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {

 _wp_menu_output( $menu, $submenu );
 do_action( 'adminmenu' );
+echo '<li id="collapse-menu" class="hide-if-no-js"><div id="collapse-button"><div></div></div>';
+echo '<span>' . esc_html__( 'Collapse menu' ) . '</span>';
+echo '</li>';

 ?>
 </ul>

see also: http://wordpress.org/support/topic/admin-menu-wont-dis-collapse-anymore

Change History (3)

comment:1 follow-up: SergeyBiryukov2 years ago

  • Keywords reporter-feedback added

What code do you use to create the menu item? The one in the forums thread doesn't seem to be a correct way to do that.

A correct example: http://codex.wordpress.org/Plugin_API/Action_Reference/admin_menu

comment:2 in reply to: ↑ 1 digitaldonkey2 years ago

Replying to SergeyBiryukov:

What code do you use to create the menu item? The one in the forums thread doesn't seem to be a correct way to do that.

A correct example: http://codex.wordpress.org/Plugin_API/Action_Reference/admin_menu

The standard way using add_submenu_page() requires to have a file and a actual subpage as far as I know.
I require a link which will only add a get var in order to implement some cache-clear, loading the current-admin page.

Is there a reason, why the action-hook is not called before collapse-menu-button? Then everything will work as expected.

function clearcachify_menue() { 
?>
<li class="wp-not-current-submenu menu-top menu-top-last" id="menu-clearcachifyclear">
	<div class="wp-menu-image">
    <a href="<?php print $GLOBALS['cache-clear-uri']; ?>"><img alt="" src="/wp-admin/images/generic.png"></a>	</div>
	<div class="wp-menu-arrow">
	  <div></div>
	</div>
	<a href="<?php print $GLOBALS['cache-clear-uri']; ?>" class="wp-not-current-submenu menu-top " tabindex="1">Clear Cache</a>
	
	</li>
<?php }

comment:3 DrewAPicture8 months ago

  • Keywords reporter-feedback removed
  • Milestone Awaiting Review deleted
  • Resolution set to invalid
  • Status changed from new to closed

Adding a menu link in this way is not supported by the admin menu API. And printing a $_GLOBAL value via an href probably isn't advisable either.

Regardless, I'd suggest maybe adding a toolbar link instead where you can specify the href destination you need. Take a look at `WP_Admin_Bar->add_menu|add_node()`.

Note: See TracTickets for help on using tickets.