Changeset 13512 for trunk/wp-admin/includes/nav-menu.php
- Timestamp:
- 02/28/2010 08:00:49 PM (16 years ago)
- File:
-
- 1 edited
-
trunk/wp-admin/includes/nav-menu.php (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/includes/nav-menu.php
r13473 r13512 1 1 <?php 2 2 3 /*-----------------------------------------------------------------------------------*/ 4 /* Custom Navigation Functions */ 5 /* wp_custom_navigation_output() displays the menu in the back/frontend 6 /* wp_custom_nav_get_pages() 7 /* wp_custom_nav_get_categories() 8 /* wp_custom_navigation_default_sub_items() is a recursive sub menu item function 9 /*-----------------------------------------------------------------------------------*/ 10 11 // Outputs All Pages and Sub Items 12 function wp_nav_menu_get_pages($counter, $type) { 13 3 /** 4 * Displays a list of links and thier sub items. 5 * 6 * @since 3.0.0 7 * 8 * @param string $counter 9 * @param string $context 10 */ 11 function wp_nav_menu_get_custom_links( $counter, $context ) { 12 $available_links = new WP_Query( ); 13 14 $args = array( 'post_status' => 'any', 'post_type' => 'nav_menu_item', 'meta_value' => 'custom' ); 15 $link_objects = new WP_Query( $args ); 16 17 $items_counter = $counter; 18 19 if ( !$link_objects->posts ) { 20 _e('Not Found'); 21 return $items_counter; 22 } 23 24 // Display Loop 25 foreach ( $link_objects->posts as $item ) { 26 if ( 0 == $item->parent ) { 27 $item = wp_setup_nav_menu_item( $item, 'item', $items_counter ); 28 29 switch ( $context ) { 30 case 'menu': 31 ?> 32 <li id="menu-<?php echo $items_counter; ?>" value="<?php echo $items_counter; ?>"> 33 <?php 34 echo wp_get_nav_menu_item( $item, 'menu' ); 35 $parentli = $item->ID; 36 $items_counter++; 37 $items_counter = wp_nav_menu_sub_items( $item->ID, $items_counter, $parentli, 'categories', 'menu' ); 38 ?> 39 </li> 40 <?php 41 break; 42 43 case 'default': 44 ?> 45 <li> 46 <?php 47 echo wp_get_nav_menu_item( $item, 'default' ); 48 $parentli = $item->ID; 49 $items_counter++; 50 $items_counter = wp_nav_menu_sub_items( $item->ID, $items_counter, $parentli, 'categories', 'default' ); 51 ?> 52 </li> 53 <?php 54 break; 55 } 56 } 57 } 58 return $items_counter; 59 } 60 61 /** 62 * Displays a list of pages and thier sub items. 63 * 64 * @since 3.0.0 65 * 66 * @param string $counter 67 * @param string $context 68 */ 69 function wp_nav_menu_get_pages( $counter, $context ) { 14 70 $pages_args = array( 15 71 'child_of' => 0, … … 27 83 'offset' => 0 ); 28 84 29 // GETall pages30 $pages_array = get_pages( $pages_args);85 // Get all pages 86 $pages_array = get_pages( $pages_args ); 31 87 32 88 $items_counter = $counter; … … 41 97 foreach ( $pages_array as $post ) { 42 98 if ( $post->post_parent == 0 ) { 43 $post = wp_setup_nav_menu_item($post, 'page', $items_counter); 44 if ( $type == 'menu' ) { 45 ?> 46 99 $post = wp_setup_nav_menu_item( $post, 'page', $items_counter ); 100 if ( $context == 'menu' ) { 101 ?> 47 102 <li id="menu-<?php echo $items_counter; ?>" value="<?php echo $items_counter; ?>"> 48 103 <?php 49 wp_print_nav_menu_item($post, 'menu', $items_counter);104 echo wp_get_nav_menu_item( $post, 'menu', $items_counter ); 50 105 $parentli = $post->ID; 51 106 $items_counter++; 52 $items_counter = wp_custom_navigation_default_sub_items($post->ID, $items_counter, $parentli, 'pages', 'menu'); 53 ?> 54 </li> 55 56 <?php 57 } elseif ( $type == 'default' ) { 107 $items_counter = wp_nav_menu_sub_items( $post->ID, $items_counter, $parentli, 'pages', 'menu' ); 108 ?> 109 </li> 110 <?php 111 } elseif ( $context == 'default' ) { 58 112 // Sidebar Menu 59 113 ?> 60 114 <li> 61 115 <?php 62 wp_print_nav_menu_item($post, 'default');116 echo wp_get_nav_menu_item( $post, 'default' ); 63 117 $parentli = $post->ID; 64 118 $items_counter++; 65 $items_counter = wp_nav_menu_sub_items( $post->ID, $items_counter, $parentli, 'pages', 'default');119 $items_counter = wp_nav_menu_sub_items( $post->ID, $items_counter, $parentli, 'pages', 'default' ); 66 120 ?> 67 121 </li> 68 69 <?php 70 } 71 } 72 } 73 122 <?php 123 } 124 } 125 } 74 126 return $items_counter; 75 127 } 76 128 77 // Outputs All Categories and Sub Items 78 function wp_nav_menu_get_categories($counter, $type) { 79 129 /** 130 * Displays a list of categories and thier sub items. 131 * 132 * @since 3.0.0 133 * 134 * @param string $counter 135 * @param string $context 136 */ 137 function wp_nav_menu_get_categories( $counter, $context ) { 80 138 $category_args = array( 81 139 'type' => 'post', … … 94 152 95 153 // Get all categories 96 $categories_array = get_categories( $category_args);154 $categories_array = get_categories( $category_args ); 97 155 98 156 if ( !$categories_array ) { … … 104 162 foreach ( $categories_array as $cat_item ) { 105 163 if ( $cat_item->parent == 0 ) { 106 $cat_item = wp_setup_nav_menu_item( $cat_item, 'category', $items_counter);164 $cat_item = wp_setup_nav_menu_item( $cat_item, 'category', $items_counter ); 107 165 // Custom Menu 108 if ( $type == 'menu' ) { 109 ?> 110 166 if ( $context == 'menu' ) { 167 ?> 111 168 <li id="menu-<?php echo $items_counter; ?>" value="<?php echo $items_counter; ?>"> 112 169 <?php 113 wp_print_nav_menu_item($cat_item, 'menu');170 echo wp_get_nav_menu_item($cat_item, 'menu'); 114 171 $parentli = $cat_item->cat_ID; 115 172 $items_counter++; 116 $items_counter = wp_nav_menu_sub_items($cat_item->cat_ID, $items_counter, $parentli, 'categories', 'menu'); 117 ?> 118 119 </li> 120 121 <?php 122 } elseif ( $type == 'default' ) { 173 $items_counter = wp_nav_menu_sub_items( $cat_item->cat_ID, $items_counter, $parentli, 'categories', 'menu' ); 174 ?> 175 </li> 176 <?php 177 } elseif ( $context == 'default' ) { 123 178 // Sidebar Menu 124 179 ?> 125 180 <li> 126 181 <?php 127 wp_print_nav_menu_item($cat_item, 'default');182 echo wp_get_nav_menu_item( $cat_item, 'default' ); 128 183 $parentli = $cat_item->cat_ID; 129 184 $items_counter++; 130 $items_counter = wp_nav_menu_sub_items($cat_item->cat_ID, $items_counter, $parentli, 'categories', 'default'); 131 ?> 132 133 </li> 134 135 <?php 136 } 137 } 138 } 139 185 $items_counter = wp_nav_menu_sub_items( $cat_item->cat_ID, $items_counter, $parentli, 'categories', 'default' ); 186 ?> 187 </li> 188 <?php 189 } 190 } 191 } 140 192 return $items_counter; 141 193 } 142 194 143 //RECURSIVE Sub Menu Items of default categories and pages 144 function wp_nav_menu_sub_items($childof, $items_counter, $parentli, $type, $output_type) { 145 195 /** 196 * Recursive function that gets sub menu items. 197 * 198 * @since 3.0.0 199 * 200 * @param string $childof 201 * @param string $items_counter 202 * @param string $parentli 203 * @param string $context 204 * @param string $output_type 205 */ 206 function wp_nav_menu_sub_items( $childof, $items_counter, $parentli, $context, $output_type ) { 146 207 $counter = $items_counter; 147 208 … … 160 221 } 161 222 162 if ( $ type== 'categories' ) {223 if ( $context == 'categories' ) { 163 224 // Get Sub Category Items 164 225 $item_type = 'category'; 165 226 $sub_array = get_categories($sub_args); 166 } elseif ($ type== 'pages') {227 } elseif ($context == 'pages') { 167 228 // Get Sub Page Items 168 229 $item_type = 'page'; … … 173 234 } 174 235 175 176 236 if ( $sub_array ) { 177 237 ?> 178 <ul id="sub-menu-<?php echo $type ?>"> 179 238 <ul id="sub-menu-<?php echo $context ?>"> 180 239 <?php 181 240 // Display Loop 182 241 foreach ( $sub_array as $sub_item ) { 183 $sub_item = wp_setup_nav_menu_item($sub_item, $item_type, $counter); 184 242 $sub_item = wp_setup_nav_menu_item( $sub_item, $item_type, $counter ); 185 243 if ( $output_type == 'menu' ) { 186 244 ?> 187 245 <li id="menu-<?php echo $counter; ?>" value="<?php echo $counter; ?>"> 188 246 <?php 189 wp_print_nav_menu_item($sub_item, 'menu');247 echo wp_get_nav_menu_item( $sub_item, 'menu' ); 190 248 $counter++; 191 $counter = wp_nav_menu_sub_items($sub_item->ID, $counter, $sub_item->ID, $type, 'menu'); 192 ?> 193 249 $counter = wp_nav_menu_sub_items( $sub_item->ID, $counter, $sub_item->ID, $context, 'menu' ); 250 ?> 194 251 </li> 195 252 <?php … … 199 256 <li> 200 257 <?php 201 wp_print_nav_menu_item($sub_item, 'default');258 echo wp_get_nav_menu_item( $sub_item, 'default' ); 202 259 //$counter++; 203 $counter = wp_nav_menu_sub_items( $sub_item->ID, $counter, $sub_item->ID, $type, 'default');260 $counter = wp_nav_menu_sub_items( $sub_item->ID, $counter, $sub_item->ID, $context, 'default' ); 204 261 ?> 205 262 </li> … … 209 266 } 210 267 ?> 211 212 268 </ul> 213 214 269 <?php 215 270 } 216 217 271 return $counter; 218 272 } 219 /*220 function wp_nav_menu_setup($override = false) {221 // Custom Navigation Menu Setup222 223 // Override for menu descriptions224 update_option('wp_settings_nav_menu_advanced_options', 'yes');225 226 $menus = wp_get_nav_menus();227 if ( !empty( $menus ) ) {228 foreach ( $menus as $menu ) {229 wp_delete_nav_menu( $menu->term_id );230 }231 }232 233 wp_create_nav_menu( __('Main') );234 }235 /**/236 273 ?>
Note: See TracChangeset
for help on using the changeset viewer.