WordPress.org

Make WordPress Core

Ticket #16323: 16323.diff

File 16323.diff, 1.3 KB (added by duck_, 6 years ago)
  • src/wp-includes/query.php

     
    20832083                if ( !empty($q['post_type']) && 'any' != $q['post_type'] ) {
    20842084                        foreach ( (array)$q['post_type'] as $_post_type ) {
    20852085                                $ptype_obj = get_post_type_object($_post_type);
    2086                                 if ( !$ptype_obj || !$ptype_obj->query_var || empty($q[ $ptype_obj->query_var ]) )
     2086                                if ( ! $ptype_obj )
    20872087                                        continue;
    20882088
     2089                                // Map 'name' to 'postname' for hierarchical post types without a custom query_var
     2090                                if ( ! $ptype_obj->query_var && $ptype_obj->hierarchical && strpos( $q['name'], '/' ) !== false ) {
     2091                                        $q['pagename'] = $q['name'];
     2092                                        $q['name'] = '';
     2093                                }
     2094
     2095                                if ( ! $ptype_obj->query_var || empty($q[ $ptype_obj->query_var ]) )
     2096                                        continue;
     2097
    20892098                                if ( ! $ptype_obj->hierarchical || strpos($q[ $ptype_obj->query_var ], '/') === false ) {
    20902099                                        // Non-hierarchical post_types & parent-level-hierarchical post_types can directly use 'name'
    20912100                                        $q['name'] = $q[ $ptype_obj->query_var ];
    20922101                                } else {
    2093                                         // Hierarchical post_types will operate through the
     2102                                        // Hierarchical post_types will operate through the 'pagename' query var
    20942103                                        $q['pagename'] = $q[ $ptype_obj->query_var ];
    20952104                                        $q['name'] = '';
    20962105                                }