| [ Index ] |
PHP Cross Reference of WordPress |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Admin Bar 4 * 5 * This code handles the building and rendering of the press bar. 6 */ 7 8 /** 9 * Instantiate the admin bar object and set it up as a global for access elsewhere. 10 * 11 * To hide the admin bar, you're looking in the wrong place. Unhooking this function will not 12 * properly remove the admin bar. For that, use show_admin_bar(false) or the show_admin_bar filter. 13 * 14 * @since 3.1.0 15 * @access private 16 * @return bool Whether the admin bar was successfully initialized. 17 */ 18 function _wp_admin_bar_init() { 19 global $wp_admin_bar; 20 21 if ( ! is_admin_bar_showing() ) 22 return false; 23 24 /* Load the admin bar class code ready for instantiation */ 25 require ( ABSPATH . WPINC . '/class-wp-admin-bar.php' ); 26 27 /* Instantiate the admin bar */ 28 $admin_bar_class = apply_filters( 'wp_admin_bar_class', 'WP_Admin_Bar' ); 29 if ( class_exists( $admin_bar_class ) ) 30 $wp_admin_bar = new $admin_bar_class; 31 else 32 return false; 33 34 $wp_admin_bar->initialize(); 35 $wp_admin_bar->add_menus(); 36 37 return true; 38 } 39 add_action( 'init', '_wp_admin_bar_init' ); // Don't remove. Wrong way to disable. 40 41 /** 42 * Render the admin bar to the page based on the $wp_admin_bar->menu member var. 43 * This is called very late on the footer actions so that it will render after anything else being 44 * added to the footer. 45 * 46 * It includes the action "admin_bar_menu" which should be used to hook in and 47 * add new menus to the admin bar. That way you can be sure that you are adding at most optimal point, 48 * right before the admin bar is rendered. This also gives you access to the $post global, among others. 49 * 50 * @since 3.1.0 51 */ 52 function wp_admin_bar_render() { 53 global $wp_admin_bar; 54 55 if ( ! is_admin_bar_showing() || ! is_object( $wp_admin_bar ) ) 56 return false; 57 58 do_action_ref_array( 'admin_bar_menu', array( &$wp_admin_bar ) ); 59 60 do_action( 'wp_before_admin_bar_render' ); 61 62 $wp_admin_bar->render(); 63 64 do_action( 'wp_after_admin_bar_render' ); 65 } 66 add_action( 'wp_footer', 'wp_admin_bar_render', 1000 ); 67 add_action( 'in_admin_header', 'wp_admin_bar_render', 0 ); 68 69 /** 70 * Add the WordPress logo menu. 71 * 72 * @since 3.3.0 73 */ 74 function wp_admin_bar_wp_menu( $wp_admin_bar ) { 75 $wp_admin_bar->add_menu( array( 76 'id' => 'wp-logo', 77 'title' => '<span class="ab-icon"></span>', 78 'href' => self_admin_url( 'about.php' ), 79 'meta' => array( 80 'title' => __('About WordPress'), 81 ), 82 ) ); 83 84 if ( is_user_logged_in() ) { 85 // Add "About WordPress" link 86 $wp_admin_bar->add_menu( array( 87 'parent' => 'wp-logo', 88 'id' => 'about', 89 'title' => __('About WordPress'), 90 'href' => self_admin_url( 'about.php' ), 91 ) ); 92 } 93 94 // Add WordPress.org link 95 $wp_admin_bar->add_menu( array( 96 'parent' => 'wp-logo-external', 97 'id' => 'wporg', 98 'title' => __('WordPress.org'), 99 'href' => __('http://wordpress.org/'), 100 ) ); 101 102 // Add codex link 103 $wp_admin_bar->add_menu( array( 104 'parent' => 'wp-logo-external', 105 'id' => 'documentation', 106 'title' => __('Documentation'), 107 'href' => __('http://codex.wordpress.org/'), 108 ) ); 109 110 // Add forums link 111 $wp_admin_bar->add_menu( array( 112 'parent' => 'wp-logo-external', 113 'id' => 'support-forums', 114 'title' => __('Support Forums'), 115 'href' => __('http://wordpress.org/support/'), 116 ) ); 117 118 // Add feedback link 119 $wp_admin_bar->add_menu( array( 120 'parent' => 'wp-logo-external', 121 'id' => 'feedback', 122 'title' => __('Feedback'), 123 'href' => __('http://wordpress.org/support/forum/requests-and-feedback'), 124 ) ); 125 } 126 127 /** 128 * Add the "My Account" item. 129 * 130 * @since 3.3.0 131 */ 132 function wp_admin_bar_my_account_item( $wp_admin_bar ) { 133 $user_id = get_current_user_id(); 134 $current_user = wp_get_current_user(); 135 $profile_url = get_edit_profile_url( $user_id ); 136 137 if ( ! $user_id ) 138 return; 139 140 $avatar = get_avatar( $user_id, 16 ); 141 $howdy = sprintf( __('Howdy, %1$s'), $current_user->display_name ); 142 $class = empty( $avatar ) ? '' : 'with-avatar'; 143 144 $wp_admin_bar->add_menu( array( 145 'id' => 'my-account', 146 'parent' => 'top-secondary', 147 'title' => $howdy . $avatar, 148 'href' => $profile_url, 149 'meta' => array( 150 'class' => $class, 151 'title' => __('My Account'), 152 ), 153 ) ); 154 } 155 156 /** 157 * Add the "My Account" submenu items. 158 * 159 * @since 3.1.0 160 */ 161 function wp_admin_bar_my_account_menu( $wp_admin_bar ) { 162 $user_id = get_current_user_id(); 163 $current_user = wp_get_current_user(); 164 $profile_url = get_edit_profile_url( $user_id ); 165 166 if ( ! $user_id ) 167 return; 168 169 $wp_admin_bar->add_group( array( 170 'parent' => 'my-account', 171 'id' => 'user-actions', 172 ) ); 173 174 $user_info = get_avatar( $user_id, 64 ); 175 $user_info .= "<span class='display-name'>{$current_user->display_name}</span>"; 176 177 if ( $current_user->display_name !== $current_user->user_nicename ) 178 $user_info .= "<span class='username'>{$current_user->user_nicename}</span>"; 179 180 $wp_admin_bar->add_menu( array( 181 'parent' => 'user-actions', 182 'id' => 'user-info', 183 'title' => $user_info, 184 'href' => $profile_url, 185 'meta' => array( 186 'tabindex' => -1, 187 ), 188 ) ); 189 $wp_admin_bar->add_menu( array( 190 'parent' => 'user-actions', 191 'id' => 'edit-profile', 192 'title' => __( 'Edit My Profile' ), 193 'href' => $profile_url, 194 ) ); 195 $wp_admin_bar->add_menu( array( 196 'parent' => 'user-actions', 197 'id' => 'logout', 198 'title' => __( 'Log Out' ), 199 'href' => wp_logout_url(), 200 ) ); 201 } 202 203 /** 204 * Add the "Site Name" menu. 205 * 206 * @since 3.3.0 207 */ 208 function wp_admin_bar_site_menu( $wp_admin_bar ) { 209 global $current_site; 210 211 // Don't show for logged out users. 212 if ( ! is_user_logged_in() ) 213 return; 214 215 // Show only when the user is a member of this site, or they're a super admin. 216 if ( ! is_user_member_of_blog() && ! is_super_admin() ) 217 return; 218 219 $blogname = get_bloginfo('name'); 220 221 if ( empty( $blogname ) ) 222 $blogname = preg_replace( '#^(https?://)?(www.)?#', '', get_home_url() ); 223 224 if ( is_network_admin() ) { 225 $blogname = sprintf( __('Network Admin: %s'), esc_html( $current_site->site_name ) ); 226 } elseif ( is_user_admin() ) { 227 $blogname = sprintf( __('Global Dashboard: %s'), esc_html( $current_site->site_name ) ); 228 } 229 230 $title = wp_html_excerpt( $blogname, 40 ); 231 if ( $title != $blogname ) 232 $title = trim( $title ) . '…'; 233 234 $wp_admin_bar->add_menu( array( 235 'id' => 'site-name', 236 'title' => $title, 237 'href' => is_admin() ? home_url( '/' ) : admin_url(), 238 ) ); 239 240 // Create submenu items. 241 242 if ( is_admin() ) { 243 // Add an option to visit the site. 244 $wp_admin_bar->add_menu( array( 245 'parent' => 'site-name', 246 'id' => 'view-site', 247 'title' => __( 'Visit Site' ), 248 'href' => home_url( '/' ), 249 ) ); 250 251 if ( is_blog_admin() && is_multisite() && current_user_can( 'manage_sites' ) ) { 252 $wp_admin_bar->add_menu( array( 253 'parent' => 'site-name', 254 'id' => 'edit-site', 255 'title' => __( 'Edit Site' ), 256 'href' => network_admin_url( 'site-info.php?id=' . get_current_blog_id() ), 257 ) ); 258 } 259 260 } else { 261 // We're on the front end, link to the Dashboard. 262 $wp_admin_bar->add_menu( array( 263 'parent' => 'site-name', 264 'id' => 'dashboard', 265 'title' => __( 'Dashboard' ), 266 'href' => admin_url(), 267 ) ); 268 269 // Add the appearance submenu items. 270 wp_admin_bar_appearance_menu( $wp_admin_bar ); 271 } 272 } 273 274 /** 275 * Add the "My Sites/[Site Name]" menu and all submenus. 276 * 277 * @since 3.1.0 278 */ 279 function wp_admin_bar_my_sites_menu( $wp_admin_bar ) { 280 global $wpdb; 281 282 // Don't show for logged out users or single site mode. 283 if ( ! is_user_logged_in() || ! is_multisite() ) 284 return; 285 286 // Show only when the user has at least one site, or they're a super admin. 287 if ( count( $wp_admin_bar->user->blogs ) < 1 && ! is_super_admin() ) 288 return; 289 290 $wp_admin_bar->add_menu( array( 291 'id' => 'my-sites', 292 'title' => __( 'My Sites' ), 293 'href' => admin_url( 'my-sites.php' ), 294 ) ); 295 296 if ( is_super_admin() ) { 297 $wp_admin_bar->add_group( array( 298 'parent' => 'my-sites', 299 'id' => 'my-sites-super-admin', 300 ) ); 301 302 $wp_admin_bar->add_menu( array( 303 'parent' => 'my-sites-super-admin', 304 'id' => 'network-admin', 305 'title' => __('Network Admin'), 306 'href' => network_admin_url(), 307 ) ); 308 309 $wp_admin_bar->add_menu( array( 310 'parent' => 'network-admin', 311 'id' => 'network-admin-d', 312 'title' => __( 'Dashboard' ), 313 'href' => network_admin_url(), 314 ) ); 315 $wp_admin_bar->add_menu( array( 316 'parent' => 'network-admin', 317 'id' => 'network-admin-s', 318 'title' => __( 'Sites' ), 319 'href' => network_admin_url( 'sites.php' ), 320 ) ); 321 $wp_admin_bar->add_menu( array( 322 'parent' => 'network-admin', 323 'id' => 'network-admin-u', 324 'title' => __( 'Users' ), 325 'href' => network_admin_url( 'users.php' ), 326 ) ); 327 $wp_admin_bar->add_menu( array( 328 'parent' => 'network-admin', 329 'id' => 'network-admin-v', 330 'title' => __( 'Visit Network' ), 331 'href' => network_home_url(), 332 ) ); 333 } 334 335 // Add site links 336 $wp_admin_bar->add_group( array( 337 'parent' => 'my-sites', 338 'id' => 'my-sites-list', 339 'meta' => array( 340 'class' => is_super_admin() ? 'ab-sub-secondary' : '', 341 ), 342 ) ); 343 344 $blue_wp_logo_url = includes_url('images/wpmini-blue.png'); 345 346 foreach ( (array) $wp_admin_bar->user->blogs as $blog ) { 347 // @todo Replace with some favicon lookup. 348 //$blavatar = '<img src="' . esc_url( blavatar_url( blavatar_domain( $blog->siteurl ), 'img', 16, $blue_wp_logo_url ) ) . '" alt="Blavatar" width="16" height="16" />'; 349 $blavatar = '<img src="' . esc_url($blue_wp_logo_url) . '" alt="' . esc_attr__( 'Blavatar' ) . '" width="16" height="16" class="blavatar"/>'; 350 351 $blogname = empty( $blog->blogname ) ? $blog->domain : $blog->blogname; 352 $menu_id = 'blog-' . $blog->userblog_id; 353 354 $wp_admin_bar->add_menu( array( 355 'parent' => 'my-sites-list', 356 'id' => $menu_id, 357 'title' => $blavatar . $blogname, 358 'href' => get_admin_url( $blog->userblog_id ), 359 ) ); 360 361 $wp_admin_bar->add_menu( array( 362 'parent' => $menu_id, 363 'id' => $menu_id . '-d', 364 'title' => __( 'Dashboard' ), 365 'href' => get_admin_url( $blog->userblog_id ), 366 ) ); 367 368 if ( current_user_can_for_blog( $blog->userblog_id, 'edit_posts' ) ) { 369 $wp_admin_bar->add_menu( array( 370 'parent' => $menu_id, 371 'id' => $menu_id . '-n', 372 'title' => __( 'New Post' ), 373 'href' => get_admin_url( $blog->userblog_id, 'post-new.php' ), 374 ) ); 375 $wp_admin_bar->add_menu( array( 376 'parent' => $menu_id, 377 'id' => $menu_id . '-c', 378 'title' => __( 'Manage Comments' ), 379 'href' => get_admin_url( $blog->userblog_id, 'edit-comments.php' ), 380 ) ); 381 } 382 383 $wp_admin_bar->add_menu( array( 384 'parent' => $menu_id, 385 'id' => $menu_id . '-v', 386 'title' => __( 'Visit Site' ), 387 'href' => get_home_url( $blog->userblog_id, '/' ), 388 ) ); 389 } 390 } 391 392 /** 393 * Provide a shortlink. 394 * 395 * @since 3.1.0 396 */ 397 function wp_admin_bar_shortlink_menu( $wp_admin_bar ) { 398 $short = wp_get_shortlink( 0, 'query' ); 399 $id = 'get-shortlink'; 400 401 if ( empty( $short ) ) 402 return; 403 404 $html = '<input class="shortlink-input" type="text" readonly="readonly" value="' . esc_attr( $short ) . '" />'; 405 406 $wp_admin_bar->add_menu( array( 407 'id' => $id, 408 'title' => __( 'Shortlink' ), 409 'href' => $short, 410 'meta' => array( 'html' => $html ), 411 ) ); 412 } 413 414 /** 415 * Provide an edit link for posts and terms. 416 * 417 * @since 3.1.0 418 */ 419 function wp_admin_bar_edit_menu( $wp_admin_bar ) { 420 global $post, $tag, $wp_the_query; 421 422 if ( is_admin() ) { 423 $current_screen = get_current_screen(); 424 425 if ( 'post' == $current_screen->base 426 && 'add' != $current_screen->action 427 && ( $post_type_object = get_post_type_object( $post->post_type ) ) 428 && current_user_can( $post_type_object->cap->read_post, $post->ID ) 429 && ( $post_type_object->public ) ) 430 { 431 $wp_admin_bar->add_menu( array( 432 'id' => 'view', 433 'title' => $post_type_object->labels->view_item, 434 'href' => get_permalink( $post->ID ) 435 ) ); 436 } elseif ( 'edit-tags' == $current_screen->base 437 && isset( $tag ) && is_object( $tag ) 438 && ( $tax = get_taxonomy( $tag->taxonomy ) ) 439 && $tax->public ) 440 { 441 $wp_admin_bar->add_menu( array( 442 'id' => 'view', 443 'title' => $tax->labels->view_item, 444 'href' => get_term_link( $tag ) 445 ) ); 446 } 447 } else { 448 $current_object = $wp_the_query->get_queried_object(); 449 450 if ( empty( $current_object ) ) 451 return; 452 453 if ( ! empty( $current_object->post_type ) 454 && ( $post_type_object = get_post_type_object( $current_object->post_type ) ) 455 && current_user_can( $post_type_object->cap->edit_post, $current_object->ID ) 456 && ( $post_type_object->show_ui || 'attachment' == $current_object->post_type ) ) 457 { 458 $wp_admin_bar->add_menu( array( 459 'id' => 'edit', 460 'title' => $post_type_object->labels->edit_item, 461 'href' => get_edit_post_link( $current_object->ID ) 462 ) ); 463 } elseif ( ! empty( $current_object->taxonomy ) 464 && ( $tax = get_taxonomy( $current_object->taxonomy ) ) 465 && current_user_can( $tax->cap->edit_terms ) 466 && $tax->show_ui ) 467 { 468 $wp_admin_bar->add_menu( array( 469 'id' => 'edit', 470 'title' => $tax->labels->edit_item, 471 'href' => get_edit_term_link( $current_object->term_id, $current_object->taxonomy ) 472 ) ); 473 } 474 } 475 } 476 477 /** 478 * Add "Add New" menu. 479 * 480 * @since 3.1.0 481 */ 482 function wp_admin_bar_new_content_menu( $wp_admin_bar ) { 483 $actions = array(); 484 485 $cpts = (array) get_post_types( array( 'show_in_admin_bar' => true ), 'objects' ); 486 487 if ( isset( $cpts['post'] ) && current_user_can( $cpts['post']->cap->edit_posts ) ) { 488 $actions[ 'post-new.php' ] = array( $cpts['post']->labels->name_admin_bar, 'new-post' ); 489 unset( $cpts['post'] ); 490 } 491 492 if ( current_user_can( 'upload_files' ) ) 493 $actions[ 'media-new.php' ] = array( _x( 'Media', 'add new from admin bar' ), 'new-media' ); 494 495 if ( current_user_can( 'manage_links' ) ) 496 $actions[ 'link-add.php' ] = array( _x( 'Link', 'add new from admin bar' ), 'new-link' ); 497 498 if ( isset( $cpts['page'] ) && current_user_can( $cpts['page']->cap->edit_posts ) ) { 499 $actions[ 'post-new.php?post_type=page' ] = array( $cpts['page']->labels->name_admin_bar, 'new-page' ); 500 unset( $cpts['page'] ); 501 } 502 503 // Add any additional custom post types. 504 foreach ( $cpts as $cpt ) { 505 if ( ! current_user_can( $cpt->cap->edit_posts ) ) 506 continue; 507 508 $key = 'post-new.php?post_type=' . $cpt->name; 509 $actions[ $key ] = array( $cpt->labels->name_admin_bar, 'new-' . $cpt->name ); 510 } 511 512 if ( current_user_can( 'create_users' ) || current_user_can( 'promote_users' ) ) 513 $actions[ 'user-new.php' ] = array( _x( 'User', 'add new from admin bar' ), 'new-user' ); 514 515 if ( ! $actions ) 516 return; 517 518 $title = '<span class="ab-icon"></span><span class="ab-label">' . _x( 'New', 'admin bar menu group label' ) . '</span>'; 519 520 $wp_admin_bar->add_menu( array( 521 'id' => 'new-content', 522 'title' => $title, 523 'href' => admin_url( current( array_keys( $actions ) ) ), 524 'meta' => array( 525 'title' => _x( 'Add New', 'admin bar menu group label' ), 526 ), 527 ) ); 528 529 foreach ( $actions as $link => $action ) { 530 list( $title, $id ) = $action; 531 532 $wp_admin_bar->add_menu( array( 533 'parent' => 'new-content', 534 'id' => $id, 535 'title' => $title, 536 'href' => admin_url( $link ) 537 ) ); 538 } 539 } 540 541 /** 542 * Add edit comments link with awaiting moderation count bubble. 543 * 544 * @since 3.1.0 545 */ 546 function wp_admin_bar_comments_menu( $wp_admin_bar ) { 547 if ( !current_user_can('edit_posts') ) 548 return; 549 550 $awaiting_mod = wp_count_comments(); 551 $awaiting_mod = $awaiting_mod->moderated; 552 $awaiting_title = esc_attr( sprintf( _n( '%s comment awaiting moderation', '%s comments awaiting moderation', $awaiting_mod ), number_format_i18n( $awaiting_mod ) ) ); 553 554 $icon = '<span class="ab-icon"></span>'; 555 $title = '<span id="ab-awaiting-mod" class="ab-label awaiting-mod pending-count count-' . $awaiting_mod . '">' . number_format_i18n( $awaiting_mod ) . '</span>'; 556 557 $wp_admin_bar->add_menu( array( 558 'id' => 'comments', 559 'title' => $icon . $title, 560 'href' => admin_url('edit-comments.php'), 561 'meta' => array( 'title' => $awaiting_title ), 562 ) ); 563 } 564 565 /** 566 * Add appearance submenu items to the "Site Name" menu. 567 * 568 * @since 3.1.0 569 */ 570 function wp_admin_bar_appearance_menu( $wp_admin_bar ) { 571 $wp_admin_bar->add_group( array( 'parent' => 'site-name', 'id' => 'appearance' ) ); 572 573 if ( current_user_can( 'switch_themes' ) || current_user_can( 'edit_theme_options' ) ) 574 $wp_admin_bar->add_menu( array( 'parent' => 'appearance', 'id' => 'themes', 'title' => __('Themes'), 'href' => admin_url('themes.php') ) ); 575 576 if ( ! current_user_can( 'edit_theme_options' ) ) 577 return; 578 579 $wp_admin_bar->add_menu( array( 'parent' => 'appearance', 'id' => 'customize', 'title' => __('Customize'), 'href' => wp_customize_url(get_stylesheet()) ) ); 580 581 if ( current_theme_supports( 'widgets' ) ) 582 $wp_admin_bar->add_menu( array( 'parent' => 'appearance', 'id' => 'widgets', 'title' => __('Widgets'), 'href' => admin_url('widgets.php') ) ); 583 584 if ( current_theme_supports( 'menus' ) || current_theme_supports( 'widgets' ) ) 585 $wp_admin_bar->add_menu( array( 'parent' => 'appearance', 'id' => 'menus', 'title' => __('Menus'), 'href' => admin_url('nav-menus.php') ) ); 586 587 if ( current_theme_supports( 'custom-background' ) ) 588 $wp_admin_bar->add_menu( array( 'parent' => 'appearance', 'id' => 'background', 'title' => __('Background'), 'href' => admin_url('themes.php?page=custom-background') ) ); 589 590 if ( current_theme_supports( 'custom-header' ) ) 591 $wp_admin_bar->add_menu( array( 'parent' => 'appearance', 'id' => 'header', 'title' => __('Header'), 'href' => admin_url('themes.php?page=custom-header') ) ); 592 } 593 594 /** 595 * Provide an update link if theme/plugin/core updates are available. 596 * 597 * @since 3.1.0 598 */ 599 function wp_admin_bar_updates_menu( $wp_admin_bar ) { 600 601 $update_data = wp_get_update_data(); 602 603 if ( !$update_data['counts']['total'] ) 604 return; 605 606 $title = '<span class="ab-icon"></span><span class="ab-label">' . number_format_i18n( $update_data['counts']['total'] ) . '</span>'; 607 608 $wp_admin_bar->add_menu( array( 609 'id' => 'updates', 610 'title' => $title, 611 'href' => network_admin_url( 'update-core.php' ), 612 'meta' => array( 613 'title' => $update_data['title'], 614 ), 615 ) ); 616 } 617 618 /** 619 * Add search form. 620 * 621 * @since 3.3.0 622 */ 623 function wp_admin_bar_search_menu( $wp_admin_bar ) { 624 if ( is_admin() ) 625 return; 626 627 $form = '<form action="' . esc_url( home_url( '/' ) ) . '" method="get" id="adminbarsearch">'; 628 $form .= '<input class="adminbar-input" name="s" id="adminbar-search" tabindex="10" type="text" value="" maxlength="150" />'; 629 $form .= '<input type="submit" class="adminbar-button" value="' . __('Search') . '"/>'; 630 $form .= '</form>'; 631 632 $wp_admin_bar->add_menu( array( 633 'parent' => 'top-secondary', 634 'id' => 'search', 635 'title' => $form, 636 'meta' => array( 637 'class' => 'admin-bar-search', 638 'tabindex' => -1, 639 ) 640 ) ); 641 } 642 643 /** 644 * Add secondary menus. 645 * 646 * @since 3.3.0 647 */ 648 function wp_admin_bar_add_secondary_groups( $wp_admin_bar ) { 649 $wp_admin_bar->add_group( array( 650 'id' => 'top-secondary', 651 'meta' => array( 652 'class' => 'ab-top-secondary', 653 ), 654 ) ); 655 656 $wp_admin_bar->add_group( array( 657 'parent' => 'wp-logo', 658 'id' => 'wp-logo-external', 659 'meta' => array( 660 'class' => 'ab-sub-secondary', 661 ), 662 ) ); 663 } 664 665 /** 666 * Style and scripts for the admin bar. 667 * 668 * @since 3.1.0 669 * 670 */ 671 function wp_admin_bar_header() { ?> 672 <style type="text/css" media="print">#wpadminbar { display:none; }</style> 673 <?php 674 } 675 676 /** 677 * Default admin bar callback. 678 * 679 * @since 3.1.0 680 * 681 */ 682 function _admin_bar_bump_cb() { ?> 683 <style type="text/css" media="screen"> 684 html { margin-top: 28px !important; } 685 * html body { margin-top: 28px !important; } 686 </style> 687 <?php 688 } 689 690 /** 691 * Set the display status of the admin bar. 692 * 693 * This can be called immediately upon plugin load. It does not need to be called from a function hooked to the init action. 694 * 695 * @since 3.1.0 696 * 697 * @param bool $show Whether to allow the admin bar to show. 698 * @return void 699 */ 700 function show_admin_bar( $show ) { 701 global $show_admin_bar; 702 $show_admin_bar = (bool) $show; 703 } 704 705 /** 706 * Determine whether the admin bar should be showing. 707 * 708 * @since 3.1.0 709 * 710 * @return bool Whether the admin bar should be showing. 711 */ 712 function is_admin_bar_showing() { 713 global $show_admin_bar, $pagenow; 714 715 // For all these types of requests, we never want an admin bar. 716 if ( defined('XMLRPC_REQUEST') || defined('APP_REQUEST') || defined('DOING_AJAX') || defined('IFRAME_REQUEST') ) 717 return false; 718 719 // Integrated into the admin. 720 if ( is_admin() ) 721 return true; 722 723 if ( ! isset( $show_admin_bar ) ) { 724 if ( ! is_user_logged_in() || 'wp-login.php' == $pagenow ) { 725 $show_admin_bar = false; 726 } else { 727 $show_admin_bar = _get_admin_bar_pref(); 728 } 729 } 730 731 $show_admin_bar = apply_filters( 'show_admin_bar', $show_admin_bar ); 732 733 return $show_admin_bar; 734 } 735 736 /** 737 * Retrieve the admin bar display preference of a user. 738 * 739 * @since 3.1.0 740 * @access private 741 * 742 * @param string $context Context of this preference check. Defaults to 'front'. The 'admin' 743 * preference is no longer used. 744 * @param int $user Optional. ID of the user to check, defaults to 0 for current user. 745 * @return bool Whether the admin bar should be showing for this user. 746 */ 747 function _get_admin_bar_pref( $context = 'front', $user = 0 ) { 748 $pref = get_user_option( "show_admin_bar_{$context}", $user ); 749 if ( false === $pref ) 750 return true; 751 752 return 'true' === $pref; 753 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Fri May 25 03:56:23 2012 | Hosted by follow the white rabbit. |