WordPress.org

Make WordPress Core

Ticket #9153: 9153.4.patch

File 9153.4.patch, 1.4 KB (added by hakre, 5 years ago)

Code-Cleanup for Excludes for 2.8 as well.

  • wp-includes/post.php

     
    22012201 
    22022202        $exclusions = ''; 
    22032203        if ( !empty($exclude) ) { 
    2204                 $expages = preg_split('/[\s,]+/',$exclude); 
     2204                $expages = array_map('intval', explode(',', $exclude)); 
    22052205                if ( count($expages) ) { 
    22062206                        foreach ( $expages as $expage ) { 
    22072207                                if (empty($exclusions)) 
     
    22102210                                        $exclusions .= $wpdb->prepare(' AND ID <> %d ', $expage); 
    22112211                        } 
    22122212                } 
     2213                if (!empty($exclusions)) 
     2214                        $exclusions .= ')';              
    22132215        } 
    2214         if (!empty($exclusions)) 
    2215                 $exclusions .= ')'; 
    22162216 
    22172217        $author_query = ''; 
    22182218        if (!empty($authors)) { 
     
    22762276                $pages = & get_page_children($child_of, $pages); 
    22772277 
    22782278        if ( !empty($exclude_tree) ) { 
    2279                 $exclude = array(); 
    2280  
    2281                 $exclude = (int) $exclude_tree; 
    2282                 $children = get_page_children($exclude, $pages); 
    2283                 $excludes = array(); 
    2284                 foreach ( $children as $child ) 
    2285                         $excludes[] = $child->ID; 
    2286                 $excludes[] = $exclude; 
     2279                $excludes = array_map('intval', explode(',', $exclude_tree)); 
     2280                 
     2281                // exclude tree will work as describben - self and direct childs only (!)                
    22872282                $total = count($pages); 
    22882283                for ( $i = 0; $i < $total; $i++ ) { 
    2289                         if ( in_array($pages[$i]->ID, $excludes) ) 
     2284                        if ( in_array($pages[$i]->ID, $excludes) ||  
     2285                             in_array($pages[$i]->post_parent, $excludes))                            
    22902286                                unset($pages[$i]); 
    22912287                } 
    22922288        }