Make WordPress Core


Ignore:
Timestamp:
06/11/2010 03:34:32 PM (15 years ago)
Author:
wpmuguru
Message:

hide unpublished items on frontend nav menus, props filosofo, fixes #13822

File:
1 edited

Legend:

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

    r15214 r15219  
    7272
    7373        if ( isset( $item->post_status ) && 'draft' == $item->post_status ) {
     74            $classes[] = 'draft';
     75            /* translators: %s: title of menu item in draft status */
     76            $title = sprintf( __('%s (Draft)'), $item->title );
     77        } elseif ( isset( $item->post_status ) && 'pending' == $item->post_status ) {
    7478            $classes[] = 'pending';
    75             /* translators: %s: title of menu item in draft status */
     79            /* translators: %s: title of menu item in pending status */
    7680            $title = sprintf( __('%s (Pending)'), $item->title );
    7781        }
     
    195199                <input class="menu-item-data-parent-id" type="hidden" name="menu-item-parent-id[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->menu_item_parent ); ?>" />
    196200                <input class="menu-item-data-position" type="hidden" name="menu-item-position[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->menu_order ); ?>" />
     201                <input class="menu-item-data-status" type="hidden" name="menu-item-status[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->post_status ); ?>" />
    197202                <input class="menu-item-data-type" type="hidden" name="menu-item-type[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->type ); ?>" />
    198203            </div><!-- .menu-item-settings-->
     
    948953 * @since 3.0.0
    949954 *
    950  * @param int $menu_id The menu ID for which to save this item. $menu_id of 0 makes a draft, orphaned menu item.
     955 * @param int $menu_id The menu ID for which to save this item. $menu_id of 0 makes a pending, orphaned menu item.
    951956 * @param array $menu_data The unsanitized posted menu item data.
    952957 * @return array The database IDs of the items saved
     
    10801085        $some_pending_menu_items = false;
    10811086        foreach( (array) $menu_items as $menu_item ) {
    1082             if ( isset( $menu_item->post_status ) && 'draft' == $menu_item->post_status )
     1087            if ( isset( $menu_item->post_status ) && 'pending' == $menu_item->post_status )
    10831088                $some_pending_menu_items = true;
    10841089        }
     
    11181123
    11191124/**
    1120  * Deletes orphaned draft menu items
     1125 * Deletes orphaned pending menu items
    11211126 *
    11221127 * @access private
     
    11241129 *
    11251130 */
    1126 function _wp_delete_orphaned_draft_menu_items() {
     1131function _wp_delete_orphaned_pending_menu_items() {
    11271132    global $wpdb;
    11281133    $delete_timestamp = time() - (60*60*24*EMPTY_TRASH_DAYS);
    11291134
    1130     // delete orphaned draft menu items
    1131     $menu_items_to_delete = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts AS p LEFT JOIN $wpdb->postmeta AS m ON p.ID = m.post_id WHERE post_type = 'nav_menu_item' AND post_status = 'draft' AND meta_key = '_menu_item_orphaned' AND meta_value < '%d'", $delete_timestamp ) );
     1135    // delete orphaned pending menu items
     1136    $menu_items_to_delete = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts AS p LEFT JOIN $wpdb->postmeta AS m ON p.ID = m.post_id WHERE post_type = 'nav_menu_item' AND post_status = 'pending' AND meta_key = '_menu_item_orphaned' AND meta_value < '%d'", $delete_timestamp ) );
    11321137
    11331138    foreach( (array) $menu_items_to_delete as $menu_item_id )
     
    11351140}
    11361141
    1137 add_action('admin_head-nav-menus.php', '_wp_delete_orphaned_draft_menu_items');
     1142add_action('admin_head-nav-menus.php', '_wp_delete_orphaned_pending_menu_items');
    11381143
    11391144?>
Note: See TracChangeset for help on using the changeset viewer.