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
This commit is contained in:
markjaquith 2010-02-25 08:48:17 +00:00
parent cb8fd85d1e
commit 280a19ff6c
3 changed files with 16 additions and 17 deletions

View File

@ -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, $post = array( 'post_status' => 'publish', 'post_type' => 'nav_menu_item', 'post_author' => $user_ID,
'ping_status' => 0, 'post_parent' => 0, 'menu_order' => $position, '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 ); 'post_content' => $custom_description, 'post_title' => $custom_title );
if ( $new_window ) if ( $new_window )
$post['post_content_filtered'] = '_blank'; update_post_meta( $db_id, 'menu_new_window', 1 );
else else
$post['post_content_filtered'] = ''; update_post_meta( $db_id, 'menu_new_window', 0 );
if ( $parent_id > 0 && isset( $parent_menu_ids[$parent_id] ) ) if ( $parent_id > 0 && isset( $parent_menu_ids[$parent_id] ) )
$post['post_parent'] = $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 // New menu item
if ( $db_id == 0 ) { if ( $db_id == 0 ) {
$db_id = wp_insert_post( $post ); $db_id = wp_insert_post( $post );

View File

@ -116,7 +116,7 @@ function wp_print_nav_menu_item($menu_item, $context, $args = array() ) {
<input type="hidden" name="position<?php echo esc_attr( $menu_item->menu_order ); ?>" id="position<?php echo esc_attr( $menu_item->menu_order ); ?>" value="<?php echo esc_attr( $menu_item->menu_order ); ?>" /> <input type="hidden" name="position<?php echo esc_attr( $menu_item->menu_order ); ?>" id="position<?php echo esc_attr( $menu_item->menu_order ); ?>" value="<?php echo esc_attr( $menu_item->menu_order ); ?>" />
<input type="hidden" name="linktype<?php echo esc_attr( $menu_item->menu_order ); ?>" id="linktype<?php echo esc_attr( $menu_item->menu_order ); ?>" value="<?php echo esc_attr( get_post_meta( $menu_item->ID, 'menu_type', true ) ); ?>" /> <input type="hidden" name="linktype<?php echo esc_attr( $menu_item->menu_order ); ?>" id="linktype<?php echo esc_attr( $menu_item->menu_order ); ?>" value="<?php echo esc_attr( get_post_meta( $menu_item->ID, 'menu_type', true ) ); ?>" />
<input type="hidden" name="anchortitle<?php echo esc_attr( $menu_item->menu_order ); ?>" id="anchortitle<?php echo esc_attr( $menu_item->menu_order ); ?>" value="<?php echo esc_attr( $menu_item->post_excerpt ); ?>" /> <input type="hidden" name="anchortitle<?php echo esc_attr( $menu_item->menu_order ); ?>" id="anchortitle<?php echo esc_attr( $menu_item->menu_order ); ?>" value="<?php echo esc_attr( $menu_item->post_excerpt ); ?>" />
<input type="hidden" name="newwindow<?php echo esc_attr( $menu_item->menu_order ); ?>" id="newwindow<?php echo esc_attr( $menu_item->menu_order ); ?>" value="<?php echo ( '' == $menu_item->post_content_filtered ? '0' : '1' ); ?>" /> <input type="hidden" name="newwindow<?php echo esc_attr( $menu_item->menu_order ); ?>" id="newwindow<?php echo esc_attr( $menu_item->menu_order ); ?>" value="<?php echo ( get_post_meta( $menu_item->ID, 'menu_new_window', true ) ? '1' : '0' ); ?>" />
<?php <?php
break; break;

View File

@ -74,6 +74,7 @@ function wp_setup_nav_menu_item($menu_item, $type = 'item', $position = 0) {
if ( 'item' == $type ) { if ( 'item' == $type ) {
$menu_item->type = get_post_meta($menu_item->ID, 'menu_type', true); $menu_item->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->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 ] ) ) if ( isset( $parent_menu_order[ $menu_item->post_parent ] ) )
$menu_item->parent_item = $parent_menu_order[ $menu_item->post_parent ]; $menu_item->parent_item = $parent_menu_order[ $menu_item->post_parent ];
else else
@ -92,8 +93,7 @@ function wp_setup_nav_menu_item($menu_item, $type = 'item', $position = 0) {
} }
switch ( $menu_item->type ) { switch ( $menu_item->type ) {
// Page Menu Item case 'page' :
case 'page':
$menu_item->link = get_page_link( $menu_item->object_id ); $menu_item->link = get_page_link( $menu_item->object_id );
if ( $menu_item->post_title == '' ) 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 ); $menu_item->description = get_post_meta( $menu_item->ID, 'page-description', true );
else else
$menu_item->description = $menu_item->post_content; $menu_item->description = $menu_item->post_content;
$menu_item->target = '';
$menu_item->append = _x('Page', 'menu nav item type'); $menu_item->append = _x('Page', 'menu nav item type');
break; break;
// Category Menu Item case 'category' :
case 'category':
$menu_item->link = get_category_link( $menu_item->object_id ); $menu_item->link = get_category_link( $menu_item->object_id );
if ( empty($menu_item->post_title) ) { 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 ) ); $menu_item->description = strip_tags( category_description( $menu_item->object_id ) );
else else
$menu_item->description = $menu_item->post_content; $menu_item->description = $menu_item->post_content;
$menu_item->target = '';
$menu_item->append = _x('Category', 'menu nav item type'); $menu_item->append = _x('Category', 'menu nav item type');
break; break;
default: case 'custom' :
// Custom Menu Item default :
$menu_item->link = $menu_item->guid; $menu_item->link = esc_url_raw( get_post_meta( $menu_item->ID, 'menu_link', true ) );
$menu_item->title = $menu_item->post_title; $menu_item->title = $menu_item->post_title;
$menu_item->description = $menu_item->post_content; $menu_item->description = $menu_item->post_content;
$menu_item->target = 'target="_blank"';
$menu_item->append = _x('Custom', 'menu nav item type'); $menu_item->append = _x('Custom', 'menu nav item type');
break; break;
} }
$menu_item->li_class = ''; $menu_item->li_class = '';