]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/class-walker-nav-menu.php
WordPress 4.7
[autoinstalls/wordpress.git] / wp-includes / class-walker-nav-menu.php
index 43eaa91c660b35efb55c4b8c1c1ab649270ad329..4c1a1f2c91521d4a24cbf5e49bc4932c71ecb76c 100644 (file)
@@ -45,13 +45,20 @@ class Walker_Nav_Menu extends Walker {
         *
         * @see Walker::start_lvl()
         *
-        * @param string $output Passed by reference. Used to append additional content.
-        * @param int    $depth  Depth of menu item. Used for padding.
-        * @param array  $args   An array of wp_nav_menu() arguments.
+        * @param string   $output Passed by reference. Used to append additional content.
+        * @param int      $depth  Depth of menu item. Used for padding.
+        * @param stdClass $args   An object of wp_nav_menu() arguments.
         */
        public function start_lvl( &$output, $depth = 0, $args = array() ) {
-               $indent = str_repeat("\t", $depth);
-               $output .= "\n$indent<ul class=\"sub-menu\">\n";
+               if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
+                       $t = '';
+                       $n = '';
+               } else {
+                       $t = "\t";
+                       $n = "\n";
+               }
+               $indent = str_repeat( $t, $depth );
+               $output .= "{$n}{$indent}<ul class=\"sub-menu\">{$n}";
        }
 
        /**
@@ -61,13 +68,20 @@ class Walker_Nav_Menu extends Walker {
         *
         * @see Walker::end_lvl()
         *
-        * @param string $output Passed by reference. Used to append additional content.
-        * @param int    $depth  Depth of menu item. Used for padding.
-        * @param array  $args   An array of wp_nav_menu() arguments.
+        * @param string   $output Passed by reference. Used to append additional content.
+        * @param int      $depth  Depth of menu item. Used for padding.
+        * @param stdClass $args   An object of wp_nav_menu() arguments.
         */
        public function end_lvl( &$output, $depth = 0, $args = array() ) {
-               $indent = str_repeat("\t", $depth);
-               $output .= "$indent</ul>\n";
+               if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
+                       $t = '';
+                       $n = '';
+               } else {
+                       $t = "\t";
+                       $n = "\n";
+               }
+               $indent = str_repeat( $t, $depth );
+               $output .= "$indent</ul>{$n}";
        }
 
        /**
@@ -78,14 +92,21 @@ class Walker_Nav_Menu extends Walker {
         *
         * @see Walker::start_el()
         *
-        * @param string $output Passed by reference. Used to append additional content.
-        * @param object $item   Menu item data object.
-        * @param int    $depth  Depth of menu item. Used for padding.
-        * @param array  $args   An array of wp_nav_menu() arguments.
-        * @param int    $id     Current item ID.
+        * @param string   $output Passed by reference. Used to append additional content.
+        * @param WP_Post  $item   Menu item data object.
+        * @param int      $depth  Depth of menu item. Used for padding.
+        * @param stdClass $args   An object of wp_nav_menu() arguments.
+        * @param int      $id     Current item ID.
         */
        public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
-               $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
+               if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
+                       $t = '';
+                       $n = '';
+               } else {
+                       $t = "\t";
+                       $n = "\n";
+               }
+               $indent = ( $depth ) ? str_repeat( $t, $depth ) : '';
 
                $classes = empty( $item->classes ) ? array() : (array) $item->classes;
                $classes[] = 'menu-item-' . $item->ID;
@@ -95,9 +116,9 @@ class Walker_Nav_Menu extends Walker {
                 *
                 * @since 4.4.0
                 *
-                * @param array  $args  An array of arguments.
-                * @param object $item  Menu item data object.
-                * @param int    $depth Depth of menu item. Used for padding.
+                * @param stdClass $args  An object of wp_nav_menu() arguments.
+                * @param WP_Post  $item  Menu item data object.
+                * @param int      $depth Depth of menu item. Used for padding.
                 */
                $args = apply_filters( 'nav_menu_item_args', $args, $item, $depth );
 
@@ -107,10 +128,10 @@ class Walker_Nav_Menu extends Walker {
                 * @since 3.0.0
                 * @since 4.1.0 The `$depth` parameter was added.
                 *
-                * @param array  $classes The CSS classes that are applied to the menu item's `<li>` element.
-                * @param object $item    The current menu item.
-                * @param array  $args    An array of wp_nav_menu() arguments.
-                * @param int    $depth   Depth of menu item. Used for padding.
+                * @param array    $classes The CSS classes that are applied to the menu item's `<li>` element.
+                * @param WP_Post  $item    The current menu item.
+                * @param stdClass $args    An object of wp_nav_menu() arguments.
+                * @param int      $depth   Depth of menu item. Used for padding.
                 */
                $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
                $class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
@@ -121,10 +142,10 @@ class Walker_Nav_Menu extends Walker {
                 * @since 3.0.1
                 * @since 4.1.0 The `$depth` parameter was added.
                 *
-                * @param string $menu_id The ID that is applied to the menu item's `<li>` element.
-                * @param object $item    The current menu item.
-                * @param array  $args    An array of wp_nav_menu() arguments.
-                * @param int    $depth   Depth of menu item. Used for padding.
+                * @param string   $menu_id The ID that is applied to the menu item's `<li>` element.
+                * @param WP_Post  $item    The current menu item.
+                * @param stdClass $args    An object of wp_nav_menu() arguments.
+                * @param int      $depth   Depth of menu item. Used for padding.
                 */
                $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args, $depth );
                $id = $id ? ' id="' . esc_attr( $id ) . '"' : '';
@@ -151,9 +172,9 @@ class Walker_Nav_Menu extends Walker {
                 *     @type string $rel    The rel attribute.
                 *     @type string $href   The href attribute.
                 * }
-                * @param object $item  The current menu item.
-                * @param array  $args  An array of wp_nav_menu() arguments.
-                * @param int    $depth Depth of menu item. Used for padding.
+                * @param WP_Post  $item  The current menu item.
+                * @param stdClass $args  An object of wp_nav_menu() arguments.
+                * @param int      $depth Depth of menu item. Used for padding.
                 */
                $atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args, $depth );
 
@@ -173,10 +194,10 @@ class Walker_Nav_Menu extends Walker {
                 *
                 * @since 4.4.0
                 *
-                * @param string $title The menu item's title.
-                * @param object $item  The current menu item.
-                * @param array  $args  An array of wp_nav_menu() arguments.
-                * @param int    $depth Depth of menu item. Used for padding.
+                * @param string   $title The menu item's title.
+                * @param WP_Post  $item  The current menu item.
+                * @param stdClass $args  An object of wp_nav_menu() arguments.
+                * @param int      $depth Depth of menu item. Used for padding.
                 */
                $title = apply_filters( 'nav_menu_item_title', $title, $item, $args, $depth );
 
@@ -195,10 +216,10 @@ class Walker_Nav_Menu extends Walker {
                 *
                 * @since 3.0.0
                 *
-                * @param string $item_output The menu item's starting HTML output.
-                * @param object $item        Menu item data object.
-                * @param int    $depth       Depth of menu item. Used for padding.
-                * @param array  $args        An array of wp_nav_menu() arguments.
+                * @param string   $item_output The menu item's starting HTML output.
+                * @param WP_Post  $item        Menu item data object.
+                * @param int      $depth       Depth of menu item. Used for padding.
+                * @param stdClass $args        An object of wp_nav_menu() arguments.
                 */
                $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
        }
@@ -210,13 +231,20 @@ class Walker_Nav_Menu extends Walker {
         *
         * @see Walker::end_el()
         *
-        * @param string $output Passed by reference. Used to append additional content.
-        * @param object $item   Page data object. Not used.
-        * @param int    $depth  Depth of page. Not Used.
-        * @param array  $args   An array of wp_nav_menu() arguments.
+        * @param string   $output Passed by reference. Used to append additional content.
+        * @param WP_Post  $item   Page data object. Not used.
+        * @param int      $depth  Depth of page. Not Used.
+        * @param stdClass $args   An object of wp_nav_menu() arguments.
         */
        public function end_el( &$output, $item, $depth = 0, $args = array() ) {
-               $output .= "</li>\n";
+               if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
+                       $t = '';
+                       $n = '';
+               } else {
+                       $t = "\t";
+                       $n = "\n";
+               }
+               $output .= "</li>{$n}";
        }
 
 } // Walker_Nav_Menu