WordPress.org

Make WordPress Core

Ticket #16323: 16323.2.diff

File 16323.2.diff, 1.9 KB (added by wonderboymusic, 6 years ago)
  • wp-includes/query.php

    diff --git wp-includes/query.php wp-includes/query.php
    index 04286aa..1ff5be3 100644
    class WP_Query { 
    20802080                        $where .= " AND DAYOFMONTH($wpdb->posts.post_date)='" . $q['day'] . "'";
    20812081
    20822082                // If we've got a post_type AND it's not "any" post_type.
    2083                 if ( !empty($q['post_type']) && 'any' != $q['post_type'] ) {
    2084                         foreach ( (array)$q['post_type'] as $_post_type ) {
    2085                                 $ptype_obj = get_post_type_object($_post_type);
    2086                                 if ( !$ptype_obj || !$ptype_obj->query_var || empty($q[ $ptype_obj->query_var ]) )
     2083                if ( ! empty( $q['post_type'] ) && 'any' !== $q['post_type'] ) {
     2084                        foreach ( (array) $q['post_type'] as $_post_type ) {
     2085                                $ptype_obj = get_post_type_object( $_post_type );
     2086                                if ( ! $ptype_obj )
    20872087                                        continue;
    20882088
    2089                                 if ( ! $ptype_obj->hierarchical || strpos($q[ $ptype_obj->query_var ], '/') === false ) {
     2089                                // Map 'name' to 'pagename' for hierarchical post types without a custom query_var
     2090                                if ( ! $ptype_obj->query_var && $ptype_obj->hierarchical && false !== strpos( $q['name'], '/' ) ) {
     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
     2098                                if ( ! $ptype_obj->hierarchical || false === strpos( $q[ $ptype_obj->query_var ], '/' ) ) {
    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                                }
    class WP_Query { 
    20982107                                // Only one request for a slug is possible, this is why name & pagename are overwritten above.
    20992108                                break;
    21002109                        } //end foreach
    2101                         unset($ptype_obj);
     2110                        unset( $ptype_obj );
    21022111                }
    21032112
    21042113                if ( '' != $q['name'] ) {