WordPress.org

Make WordPress Core

Ticket #16075: 16075.diff

File 16075.diff, 4.0 KB (added by aaroncampbell, 3 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 );