WordPress.org

Make WordPress Core

Ticket #8683: 8683.patch

File 8683.patch, 1.6 KB (added by hakre, 6 years ago)
  • wp-includes/post.php

    ### Eclipse Workspace Patch 1.0
    #P wordress 2.7
     
    21132113 
    21142114        $exclusions = ''; 
    21152115        if ( !empty($exclude) ) { 
    2116                 $expages = preg_split('/[\s,]+/',$exclude); 
     2116                $expages = array_map('intval', explode(',', $exclude));          
    21172117                if ( count($expages) ) { 
    21182118                        foreach ( $expages as $expage ) { 
    21192119                                if (empty($exclusions)) 
     
    21222122                                        $exclusions .= $wpdb->prepare(' AND ID <> %d ', $expage); 
    21232123                        } 
    21242124                } 
     2125                if (!empty($exclusions)) 
     2126                        $exclusions .= ')';              
    21252127        } 
    2126         if (!empty($exclusions)) 
    2127                 $exclusions .= ')'; 
    21282128 
    21292129        $author_query = ''; 
    21302130        if (!empty($authors)) { 
     
    21882188                $pages = & get_page_children($child_of, $pages); 
    21892189 
    21902190        if ( !empty($exclude_tree) ) { 
    2191                 $exclude = array(); 
    2192  
    2193                 $exclude = (int) $exclude_tree; 
    2194                 $children = get_page_children($exclude, $pages); 
    2195                 $excludes = array(); 
    2196                 foreach ( $children as $child ) 
    2197                         $excludes[] = $child->ID; 
    2198                 $excludes[] = $exclude; 
     2191                $excludes = array_map('intval', explode(',', $exclude_tree)); 
     2192                 
     2193                // exclude tree will work as describben - self and direct childs only (!)                
    21992194                $total = count($pages); 
    22002195                for ( $i = 0; $i < $total; $i++ ) { 
    2201                         if ( in_array($pages[$i]->ID, $excludes) ) 
     2196                        if ( in_array($pages[$i]->ID, $excludes) ||  
     2197                             in_array($pages[$i]->post_parent, $excludes))                            
    22022198                                unset($pages[$i]); 
    22032199                } 
    22042200        } 
    2205  
     2201                 
    22062202        $cache[ $key ] = $pages; 
    22072203        wp_cache_set( 'get_pages', $cache, 'posts' ); 
    22082204