From 280a19ff6c19eaff3c9c7dcbd01363860079e2d4 Mon Sep 17 00:00:00 2001 From: markjaquith Date: Thu, 25 Feb 2010 08:48:17 +0000 Subject: [PATCH] Use custom fields for custom URL and new window data. Links no longer automatically open in a new window. see #11817 git-svn-id: http://svn.automattic.com/wordpress/trunk@13397 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/nav-menus.php | 9 ++++++--- wp-includes/nav-menu-template.php | 2 +- wp-includes/nav-menu.php | 22 +++++++++------------- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/wp-admin/nav-menus.php b/wp-admin/nav-menus.php index e73f69f19..0cd99efcb 100644 --- a/wp-admin/nav-menus.php +++ b/wp-admin/nav-menus.php @@ -117,15 +117,18 @@ if ( $post_counter > 0 && $menu_selected_id > 0 && ! $updated ) { $post = array( 'post_status' => 'publish', 'post_type' => 'nav_menu_item', 'post_author' => $user_ID, 'ping_status' => 0, 'post_parent' => 0, 'menu_order' => $position, - 'guid' => $custom_linkurl, 'post_excerpt' => $custom_anchor_title, 'tax_input' => array( 'nav_menu' => $menu_title ), + 'post_excerpt' => $custom_anchor_title, 'tax_input' => array( 'nav_menu' => $menu_title ), 'post_content' => $custom_description, 'post_title' => $custom_title ); if ( $new_window ) - $post['post_content_filtered'] = '_blank'; + update_post_meta( $db_id, 'menu_new_window', 1 ); else - $post['post_content_filtered'] = ''; + update_post_meta( $db_id, 'menu_new_window', 0 ); if ( $parent_id > 0 && isset( $parent_menu_ids[$parent_id] ) ) $post['post_parent'] = $parent_menu_ids[$parent_id]; + if ( $custom_linkurl ) + update_post_meta( $db_id, 'menu_link', esc_url_raw( $custom_linkurl ) ); + // New menu item if ( $db_id == 0 ) { $db_id = wp_insert_post( $post ); diff --git a/wp-includes/nav-menu-template.php b/wp-includes/nav-menu-template.php index cf6011e37..f3991c0d6 100644 --- a/wp-includes/nav-menu-template.php +++ b/wp-includes/nav-menu-template.php @@ -116,7 +116,7 @@ function wp_print_nav_menu_item($menu_item, $context, $args = array() ) { - + type = get_post_meta($menu_item->ID, 'menu_type', true); $menu_item->object_id = get_post_meta($menu_item->ID, 'object_id', true); + $menu_item->target = ( get_post_meta( $menu_item->ID, 'menu_new_window', true ) ) ? 'target="_blank"' : ''; if ( isset( $parent_menu_order[ $menu_item->post_parent ] ) ) $menu_item->parent_item = $parent_menu_order[ $menu_item->post_parent ]; else @@ -92,8 +93,7 @@ function wp_setup_nav_menu_item($menu_item, $type = 'item', $position = 0) { } switch ( $menu_item->type ) { - // Page Menu Item - case 'page': + case 'page' : $menu_item->link = get_page_link( $menu_item->object_id ); if ( $menu_item->post_title == '' ) @@ -105,11 +105,9 @@ function wp_setup_nav_menu_item($menu_item, $type = 'item', $position = 0) { $menu_item->description = get_post_meta( $menu_item->ID, 'page-description', true ); else $menu_item->description = $menu_item->post_content; - $menu_item->target = ''; $menu_item->append = _x('Page', 'menu nav item type'); - break; - // Category Menu Item - case 'category': + break; + case 'category' : $menu_item->link = get_category_link( $menu_item->object_id ); if ( empty($menu_item->post_title) ) { @@ -123,17 +121,15 @@ function wp_setup_nav_menu_item($menu_item, $type = 'item', $position = 0) { $menu_item->description = strip_tags( category_description( $menu_item->object_id ) ); else $menu_item->description = $menu_item->post_content; - $menu_item->target = ''; $menu_item->append = _x('Category', 'menu nav item type'); - break; - default: - // Custom Menu Item - $menu_item->link = $menu_item->guid; + break; + case 'custom' : + default : + $menu_item->link = esc_url_raw( get_post_meta( $menu_item->ID, 'menu_link', true ) ); $menu_item->title = $menu_item->post_title; $menu_item->description = $menu_item->post_content; - $menu_item->target = 'target="_blank"'; $menu_item->append = _x('Custom', 'menu nav item type'); - break; + break; } $menu_item->li_class = '';