Make WordPress Core


Ignore:
Timestamp:
06/08/2011 04:49:27 PM (15 years ago)
Author:
nacin
Message:

Admin Bar: Add View Site/Dashboard links, 'View X' links in the admin, 'View' action link for terms. New custom taxonomy string: view_item, defaulting to 'View Tag' and View Category'. fixes #17705.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/admin-bar.php

    r18164 r18194  
    9090                /* Add the "My Account" sub menus */
    9191                $wp_admin_bar->add_menu( array( 'parent' => $id, 'title' => __( 'Edit My Profile' ), 'href' => get_edit_profile_url( $user_id ) ) );
    92                 if ( is_multisite() )
    93                         $wp_admin_bar->add_menu( array( 'parent' => $id, 'title' => __( 'Dashboard' ), 'href' => get_dashboard_url( $user_id ) ) );
    94                 else
    95                         $wp_admin_bar->add_menu( array( 'parent' => $id, 'title' => __( 'Dashboard' ), 'href' => admin_url() ) );
    9692                $wp_admin_bar->add_menu( array( 'parent' => $id, 'title' => __( 'Log Out' ), 'href' => wp_logout_url() ) );
    9793        }
     94}
     95
     96/**
     97 * Add the "Dashboard"/"View Site" menu.
     98 *
     99 * @since 3.2.0
     100 */
     101function wp_admin_bar_dashboard_view_site_menu( $wp_admin_bar ) {
     102        if ( is_admin() )
     103                $wp_admin_bar->add_menu( array( 'title' => __( 'Visit Site' ), 'href' => home_url() ) );
     104        elseif ( is_multisite() )
     105                $wp_admin_bar->add_menu( array( 'title' => __( 'Dashboard' ), 'href' => get_dashboard_url( get_current_user_id() ) ) );
     106        else
     107                $wp_admin_bar->add_menu( array( 'title' => __( 'Dashboard' ), 'href' => admin_url() ) );
    98108}
    99109
     
    161171 */
    162172function wp_admin_bar_edit_menu( $wp_admin_bar ) {
    163         $current_object = get_queried_object();
    164 
    165         if ( empty($current_object) )
    166                 return;
    167 
    168         if ( ! empty( $current_object->post_type ) && ( $post_type_object = get_post_type_object( $current_object->post_type ) ) && current_user_can( $post_type_object->cap->edit_post, $current_object->ID ) && ( $post_type_object->show_ui || 'attachment' == $current_object->post_type ) ) {
    169                 $wp_admin_bar->add_menu( array( 'id' => 'edit', 'title' => $post_type_object->labels->edit_item,  'href' => get_edit_post_link( $current_object->ID ) ) );
    170         } elseif ( ! empty( $current_object->taxonomy ) &&  ( $tax = get_taxonomy( $current_object->taxonomy ) ) && current_user_can( $tax->cap->edit_terms ) && $tax->show_ui ) {
    171                 $wp_admin_bar->add_menu( array( 'id' => 'edit', 'title' => $tax->labels->edit_item, 'href' => get_edit_term_link( $current_object->term_id, $current_object->taxonomy ) ) );
     173        global $post, $tag;
     174
     175        if ( is_admin() ) {
     176                $current_screen = get_current_screen();
     177
     178                if ( 'post' == $current_screen->base
     179                        && 'add' != $current_screen->action
     180                        && ( $post_type_object = get_post_type_object( $post->post_type ) )
     181                        && current_user_can( $post_type_object->cap->read_post, $post->ID )
     182                        && ( $post_type_object->public ) )
     183                {
     184                        $wp_admin_bar->add_menu( array(
     185                                'id' => 'view',
     186                                'title' => $post_type_object->labels->view_item,
     187                                'href' => get_permalink( $post->ID )
     188                        ) );
     189                } elseif ( 'edit-tags' == $current_screen->base
     190                        && isset( $tag ) && is_object( $tag )
     191                        && ( $tax = get_taxonomy( $tag->taxonomy ) )
     192                        && $tax->public )
     193                {
     194                        $wp_admin_bar->add_menu( array(
     195                                'id' => 'view',
     196                                'title' => $tax->labels->view_item,
     197                                'href' => get_term_link( $tag )
     198                        ) );
     199                }
     200        } else {
     201                $current_object = get_queried_object();
     202
     203                if ( empty($current_object) )
     204                        return;
     205
     206                if ( ! empty( $current_object->post_type )
     207                        && ( $post_type_object = get_post_type_object( $current_object->post_type ) )
     208                        && current_user_can( $post_type_object->cap->edit_post, $current_object->ID )
     209                        && ( $post_type_object->show_ui || 'attachment' == $current_object->post_type ) )
     210                {
     211                        $wp_admin_bar->add_menu( array(
     212                                'id' => 'edit',
     213                                'title' => $post_type_object->labels->edit_item,
     214                                'href' => get_edit_post_link( $current_object->ID )
     215                        ) );
     216                } elseif ( ! empty( $current_object->taxonomy )
     217                        && ( $tax = get_taxonomy( $current_object->taxonomy ) )
     218                        && current_user_can( $tax->cap->edit_terms )
     219                        && $tax->show_ui )
     220                {
     221                        $wp_admin_bar->add_menu( array(
     222                                'id' => 'edit',
     223                                'title' => $tax->labels->edit_item,
     224                                'href' => get_edit_term_link( $current_object->term_id, $current_object->taxonomy )
     225                        ) );
     226                }
    172227        }
    173228}
Note: See TracChangeset for help on using the changeset viewer.