Make WordPress Core

Ticket #16075: 16075.diff

File 16075.diff, 4.0 KB (added by aaroncampbell, 13 years ago)
  • wp-admin/includes/nav-menu.php

     
    628628
    629629        if ( !$posts )
    630630                $error = '<li id="error">'. $post_type['args']->labels->not_found .'</li>';
    631        
     631
    632632        $db_fields = false;
    633633        if ( is_post_type_hierarchical( $post_type_name ) ) {
    634634                $db_fields = array( 'parent' => 'post_parent', 'id' => 'ID' );
     
    743743                                                        'url' => home_url('/'),
    744744                                                ) );
    745745                                        }
     746                                } elseif ( $post_type['args']->has_archive ) {
     747                                        $_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1;
     748                                        array_unshift( $posts, (object) array(
     749                                                '_add_to_top' => true,
     750                                                'ID' => 0,
     751                                                'object_id' => $_nav_menu_placeholder,
     752                                                'post_content' => '',
     753                                                'post_excerpt' => '',
     754                                                'post_title' => $post_type['args']->labels->items_archive,
     755                                                'post_type' => 'nav_menu_item',
     756                                                'type' => 'custom',
     757                                                'url' => site_url( $post_type['args']->archive_slug ),
     758                                        ) );
    746759                                }
    747760
    748761                                $checkbox_items = walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $posts), 0, (object) $args );
  • wp-includes/post.php

     
    984984                        $wp_rewrite->add_rewrite_tag("%$post_type%", '([^/]+)', $args->query_var ? "{$args->query_var}=" : "post_type=$post_type&name=");
    985985
    986986                if ( $args->has_archive ) {
    987                         $archive_slug = $args->has_archive === true ? $args->rewrite['slug'] : $args->has_archive;
     987                        $args->archive_slug = $args->has_archive === true ? $args->rewrite['slug'] : $args->has_archive;
    988988                        if ( $args->rewrite['with_front'] )
    989                                 $archive_slug = substr( $wp_rewrite->front, 1 ) . $archive_slug;
     989                                $args->archive_slug = substr( $wp_rewrite->front, 1 ) . $args->archive_slug;
    990990                        else
    991                                 $archive_slug = $wp_rewrite->root . $archive_slug;
     991                                $args->archive_slug = $wp_rewrite->root . $args->archive_slug;
    992992
    993                         $wp_rewrite->add_rule( "{$archive_slug}/?$", "index.php?post_type=$post_type", 'top' );
     993                        $wp_rewrite->add_rule( "{$args->archive_slug}/?$", "index.php?post_type=$post_type", 'top' );
    994994                        if ( $args->rewrite['feeds'] && $wp_rewrite->feeds ) {
    995995                                $feeds = '(' . trim( implode( '|', $wp_rewrite->feeds ) ) . ')';
    996                                 $wp_rewrite->add_rule( "{$archive_slug}/feed/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
    997                                 $wp_rewrite->add_rule( "{$archive_slug}/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
     996                                $wp_rewrite->add_rule( "{$args->archive_slug}/feed/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
     997                                $wp_rewrite->add_rule( "{$args->archive_slug}/$feeds/?$", "index.php?post_type=$post_type" . '&feed=$matches[1]', 'top' );
    998998                        }
    999999                        if ( $args->rewrite['pages'] )
    1000                                 $wp_rewrite->add_rule( "{$archive_slug}/{$wp_rewrite->pagination_base}/([0-9]{1,})/?$", "index.php?post_type=$post_type" . '&paged=$matches[1]', 'top' );
     1000                                $wp_rewrite->add_rule( "{$args->archive_slug}/{$wp_rewrite->pagination_base}/([0-9]{1,})/?$", "index.php?post_type=$post_type" . '&paged=$matches[1]', 'top' );
    10011001                }
    10021002
    10031003                $wp_rewrite->add_permastruct($post_type, "{$args->rewrite['slug']}/%$post_type%", $args->rewrite['with_front'], $args->permalink_epmask);
     
    11661166                'not_found' => array( __('No posts found.'), __('No pages found.') ),
    11671167                'not_found_in_trash' => array( __('No posts found in Trash.'), __('No pages found in Trash.') ),
    11681168                'parent_item_colon' => array( null, __('Parent Page:') ),
    1169                 'all_items' => array( __( 'All Posts' ), __( 'All Pages' ) )
     1169                'all_items' => array( __( 'All Posts' ), __( 'All Pages' ) ),
     1170                'items_archive' => array( __( 'Post Archive' ), __( 'Page Archive' ) ),
    11701171        );
    11711172        $nohier_vs_hier_defaults['menu_name'] = $nohier_vs_hier_defaults['name'];
    11721173        return _get_custom_object_labels( $post_type_object, $nohier_vs_hier_defaults );